|
From: Thomas K. <kr...@us...> - 2008-03-15 14:21:45
|
Update of /cvsroot/bsxproject/backend/src/main/java/de/mud/bsx In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv3466/src/main/java/de/mud/bsx Modified Files: BSXApplet.java BSXProtocol.java BSXCache.java BSXObject.java BSXDisplay.java BSXScene.java BSX.java Added Files: BSXMain.java Log Message: [TESTING] Coverage raised --- NEW FILE: BSXMain.java --- package de.mud.bsx; import java.awt.Frame; /** * @author Thomas Kriegelstein * @version $Version$ * @since 1.2.0 */ public class BSXMain { /** * Test shows some BSX data. * * @param args * ignored. */ public static void main(final String[] args) { final Frame f = new Frame("BSXDisplay Test"); final BSXDisplay b = new BSXDisplay(); f.add(b); f.pack(); f.setResizable(false); f.setVisible(true); f.toFront(); final int[][] scene = { { 0, 0, 0, 127, 0, 127, 127, 0, 127 } }; b.defineScene("int/picture", scene); b.showScene("int/picture"); b.refreshScene(); final int[][] bsx = { { 2, 120, 127, 136, 127, 128, 255 } }; b.defineObject("rahmen", bsx); b.showObject("rahmen", BSXProtocol.X_MAX / 2, BSXProtocol.Y_MAX); b.refreshScene(); } } Index: BSXApplet.java =================================================================== RCS file: /cvsroot/bsxproject/backend/src/main/java/de/mud/bsx/BSXApplet.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** BSXApplet.java 13 Mar 2008 21:47:12 -0000 1.3 --- BSXApplet.java 15 Mar 2008 14:21:50 -0000 1.4 *************** *** 3,12 **** import java.applet.Applet; import java.awt.GridLayout; - import java.io.IOException; /** ! * Simple apllet to display some BSX. * ! * @author Thomas */ public class BSXApplet extends Applet { --- 3,13 ---- import java.applet.Applet; import java.awt.GridLayout; /** ! * Simple applet to display some BSX. * ! * @author Thomas Kriegelstein ! * @version $Version$ ! * @since 1.0 */ public class BSXApplet extends Applet { *************** *** 62,73 **** */ public final void start() { ! try { ! for (int i = 0; i < this.messages.length; i++) { ! this.bsx.parse(this.messages[i].getBytes(), this.messages[i] ! .getBytes().length); ! } ! } catch (IOException ie) { ! System.err.println("Exception occured:"); ! ie.printStackTrace(); } } --- 63,69 ---- */ public final void start() { ! for (int i = 0; i < this.messages.length; i++) { ! this.bsx.parse(this.messages[i].getBytes(), this.messages[i] ! .getBytes().length); } } Index: BSXProtocol.java =================================================================== RCS file: /cvsroot/bsxproject/backend/src/main/java/de/mud/bsx/BSXProtocol.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** BSXProtocol.java 13 Mar 2008 21:47:12 -0000 1.2 --- BSXProtocol.java 15 Mar 2008 14:21:50 -0000 1.3 *************** *** 6,10 **** * @author Thomas */ ! abstract class BSXProtocol { /** length of BSX commands in bytes. */ public static final int COMMAND_LENGTH = 4; --- 6,10 ---- * @author Thomas */ ! interface BSXProtocol { /** length of BSX commands in bytes. */ public static final int COMMAND_LENGTH = 4; *************** *** 28,33 **** public static final int Y_MAX = 7; - /** Hidden constructor. */ - private BSXProtocol() { - } } --- 28,30 ---- Index: BSXCache.java =================================================================== RCS file: /cvsroot/bsxproject/backend/src/main/java/de/mud/bsx/BSXCache.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** BSXCache.java 13 Mar 2008 22:15:36 -0000 1.4 --- BSXCache.java 15 Mar 2008 14:21:50 -0000 1.5 *************** *** 7,11 **** * * @author Thomas Kriegelstein ! * @version 1.0 */ class BSXCache implements Serializable { --- 7,12 ---- * * @author Thomas Kriegelstein ! * @version $Version$ ! * @since 1.0 */ class BSXCache implements Serializable { Index: BSXObject.java =================================================================== RCS file: /cvsroot/bsxproject/backend/src/main/java/de/mud/bsx/BSXObject.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** BSXObject.java 13 Mar 2008 21:47:12 -0000 1.3 --- BSXObject.java 15 Mar 2008 14:21:50 -0000 1.4 *************** *** 12,16 **** * * @author Thomas Kriegelstein ! * @version 1.0 */ class BSXObject implements Serializable { --- 12,17 ---- * * @author Thomas Kriegelstein ! * @version $Version$ ! * @since 1.0 */ class BSXObject implements Serializable { *************** *** 22,25 **** --- 23,27 ---- /** the translated polygons. */ + // kept here for performance and memory reasons private int[][] poly; *************** *** 96,100 **** */ private int[][] copy(final int[][] aData) { ! int[][] result = new int[aData.length][]; for (int index = 0, len = aData.length; index < len; index++) { result[index] = new int[aData[index].length]; --- 98,102 ---- */ private int[][] copy(final int[][] aData) { ! final int[][] result = new int[aData.length][]; for (int index = 0, len = aData.length; index < len; index++) { result[index] = new int[aData[index].length]; *************** *** 148,157 **** g.setColor(col); for (int point = 0; point < this.poly[2 * polys].length; point++) { ! int px = this.data[polys][2 * point + 1]; ! int py = this.data[polys][2 * point + 2]; ! px = px * 2 - xMiddle + BSXDisplay.DIMENSION.width / 2; ! py = BSXDisplay.DIMENSION.height / 2 - py + yMiddle; ! this.poly[2 * polys + 0][point] = px; ! this.poly[2 * polys + 1][point] = py; } g.fillPolygon(this.poly[2 * polys], this.poly[2 * polys + 1], --- 150,159 ---- g.setColor(col); for (int point = 0; point < this.poly[2 * polys].length; point++) { ! final int px = this.data[polys][2 * point + 1]; ! final int py = this.data[polys][2 * point + 2]; ! final int dpx = px * 2 - xMiddle + BSXDisplay.DIMENSION.width / 2; ! final int dpy = BSXDisplay.DIMENSION.height / 2 - py + yMiddle; ! this.poly[2 * polys + 0][point] = dpx; ! this.poly[2 * polys + 1][point] = dpy; } g.fillPolygon(this.poly[2 * polys], this.poly[2 * polys + 1], Index: BSXDisplay.java =================================================================== RCS file: /cvsroot/bsxproject/backend/src/main/java/de/mud/bsx/BSXDisplay.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** BSXDisplay.java 15 Mar 2008 11:43:07 -0000 1.5 --- BSXDisplay.java 15 Mar 2008 14:21:50 -0000 1.6 *************** *** 3,13 **** import java.awt.Canvas; import java.awt.Dimension; - import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Point; - import java.io.File; - import java.io.FileOutputStream; - import java.io.IOException; import java.util.Enumeration; --- 3,9 ---- *************** *** 23,27 **** * @RFS * @author Thomas Kriegelstein ! * @version 1.0 */ public final class BSXDisplay extends Canvas { --- 19,24 ---- * @RFS * @author Thomas Kriegelstein ! * @version $Version$ ! * @since 1.0 */ public final class BSXDisplay extends Canvas { *************** *** 57,173 **** 255, 255, 255, 0 } }; - /** persistence flag. */ - private boolean persistent = false; - - /** persistence directory. */ - private File dir = new File("./bsx/"); - - /** - * set persistence. - * - * @param aPersistent - * true: enable - */ - public void setPersistent(final boolean aPersistent) { - this.persistent = aPersistent; - } - - /** - * if persistent. - * - * @return true if persistence is enabled. - */ - public boolean isPersistent() { - return persistent; - } - - /** - * Construct a file name from an identifier. - * - * @param id - * the identifier - * @return the filename - */ - private String idToFn(final String id) { - final String res = id.replace('*', '.') + ".bsx"; - final File f = new File(this.dir, res); - final File d = new File(f.getParent()); - d.mkdirs(); - return res; - } - - /** Ten. */ - private static final int DEC_BASE = 10; - - /** Hexadecimal. */ - private static final int HEX_BASE = 16; - - /** - * convert an integer between 0 and 255 to two hexadecimal. - * - * @param i - * the integer to convert - * @return a byte[2] containing bytes representing ASCII characters 0..9 and - * A..F - */ - private byte[] intToHex(final int i) { - final byte[] res = new byte[2]; - final int f = i / HEX_BASE; - final int g = i % HEX_BASE; - // if f > 15 -> Error - if (f >= DEC_BASE) { - res[0] = (byte) ('A' + (f - DEC_BASE)); - } else { - res[0] = (byte) ('0' + (f)); - } - if (g >= DEC_BASE) { - res[1] = (byte) ('A' + (g - DEC_BASE)); - } else { - res[1] = (byte) ('0' + (g)); - } - return res; - } - - /** - * Save the data to a file, if persistence is turned on. - * - * @param id - * a BSX-style identifier - * @param data - * BSX-style data - */ - public synchronized void save(final String id, final int[][] data) { - if (!this.persistent) { - return; - } - final String fn = idToFn(id); - final File f = new File(this.dir, fn); - FileOutputStream fos = null; - try { - fos = new FileOutputStream(f); - fos.write(intToHex(data.length)); // polys - for (int idx = 0; idx < data.length; idx++) { - final int[] element = data[idx]; - fos.write(intToHex((element.length - 1) / 2)); // edges - fos.write(intToHex(element[0])); // color - for (int edge = 1; edge < element.length; edge++) { - // edge - fos.write(intToHex(element[edge])); - } - } - } catch (IOException ioe) { - ioe.printStackTrace(); - } finally { - if (fos != null) { - try { - fos.close(); - } catch (Exception ex) { - // more or less do nothing - ex.toString(); - } - } - } - } - /** * @SCEscene. --- 54,57 ---- *************** *** 204,208 **** */ public void defineScene(final String sceneName, final int[][] data) { - save(sceneName, data); BSXScene scene; if (this.scenes.containsEntry(sceneName)) { --- 88,91 ---- *************** *** 251,257 **** */ public void removeObject(final String objectName) { ! if (this.working.containsObject(objectName)) { ! this.currentScene.removeObject(objectName); ! this.sceneChanged = (this.working == this.currentScene); } } --- 134,142 ---- */ public void removeObject(final String objectName) { ! if (this.working!=null) { ! if (this.working.containsObject(objectName)) { ! this.working.removeObject(objectName); ! this.sceneChanged = (this.working == this.currentScene); ! } } } *************** *** 265,269 **** */ public void defineObject(final String id, final int[][] data) { - save(id, data); if (this.objects.containsEntry(id)) { final BSXObject r = this.objects.getEntry(id); --- 150,153 ---- *************** *** 376,408 **** } - /** - * Test shows some BSX data. - * - * @param args - * ignored. - */ - public static void main(final String[] args) { - final Frame f = new Frame("BSXDisplay Test"); - final BSXDisplay b = new BSXDisplay(); - f.add(b); - f.pack(); - f.setResizable(false); - f.setVisible(true); - f.toFront(); - - final int[][] scene = { { 0, 0, 0, 127, 0, 127, 127, 0, 127 } }; - // { { 0, 0, 0, 255, 0, 255, 255, 0, 255 }, - // { 4, 127, 127, 255, 255, 0, 255 }, - // { 8, 120, 120, 134, 120, 134, 134, 120, 134 } }; - - b.defineScene("int/picture", scene); - b.showScene("int/picture"); - b.refreshScene(); - - final int[][] bsx = { { 2, 120, 127, 136, 127, 128, 255 } }; - - b.defineObject("rahmen", bsx); - b.showObject("rahmen", BSXProtocol.X_MAX / 2, BSXProtocol.Y_MAX); - b.refreshScene(); - } } --- 260,262 ---- Index: BSXScene.java =================================================================== RCS file: /cvsroot/bsxproject/backend/src/main/java/de/mud/bsx/BSXScene.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** BSXScene.java 28 Jun 2007 19:27:15 -0000 1.2 --- BSXScene.java 15 Mar 2008 14:21:50 -0000 1.3 *************** *** 14,18 **** * * @author Thomas Kriegelstein ! * @version 1.0 */ class BSXScene extends BSXObject { --- 14,19 ---- * * @author Thomas Kriegelstein ! * @version $Version$ ! * @since 1.0 */ class BSXScene extends BSXObject { *************** *** 45,49 **** */ public void addObject(final String objectName, final int x, final int y) { ! int layer = layerOfObject(objectName); if (-1 != layer) { removeObject(objectName, layer); --- 46,50 ---- */ public void addObject(final String objectName, final int x, final int y) { ! final int layer = layerOfObject(objectName); if (-1 != layer) { removeObject(objectName, layer); *************** *** 87,91 **** */ public void removeObject(final String objectName) { ! int layer = layerOfObject(objectName); if (-1 != layer) { removeObject(objectName, layer); --- 88,92 ---- */ public void removeObject(final String objectName) { ! final int layer = layerOfObject(objectName); if (-1 != layer) { removeObject(objectName, layer); *************** *** 101,106 **** */ public Point locateObject(final String objectName) { ! int layer; ! layer = layerOfObject(objectName); if (layer != -1) { return (Point) this.layers[layer].get(objectName); --- 102,106 ---- */ public Point locateObject(final String objectName) { ! final int layer = layerOfObject(objectName); if (layer != -1) { return (Point) this.layers[layer].get(objectName); Index: BSX.java =================================================================== RCS file: /cvsroot/bsxproject/backend/src/main/java/de/mud/bsx/BSX.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** BSX.java 13 Mar 2008 21:47:12 -0000 1.4 --- BSX.java 15 Mar 2008 14:21:50 -0000 1.5 *************** *** 6,13 **** /** ! * Ultrahighspeed-BSX-command-parser. Features: * <UL> * <LI> BSX-Commands: - * * @RFS, * @DFS, --- 6,12 ---- /** ! * UltraHighSpeed-BSX-command-parser. Features: * <UL> * <LI> BSX-Commands: * @RFS, * @DFS, *************** *** 18,25 **** * @RMO, * @TMS ! * <LI> faulttolerant handling of buggy BSX data -> ignoring until * @RFS * </UL> * @author Thomas Kriegelstein (foobar@regenbogen) */ public class BSX implements Serializable { --- 17,26 ---- * @RMO, * @TMS ! * <LI> fault-tolerant handling of buggy BSX data -> ignoring until * @RFS * </UL> * @author Thomas Kriegelstein (foobar@regenbogen) + * @version $Version$ + * @since 1.0 */ public class BSX implements Serializable { *************** *** 88,95 **** * @param s * what to send to the server - * @throws IOException - * on errors */ ! protected void write(final String s) throws IOException { } --- 89,94 ---- * @param s * what to send to the server */ ! protected void write(final String s) { } *************** *** 207,212 **** * on errors */ ! public final int parse(final byte[] buffer, final int length) ! throws IOException { int index, resindex; --- 206,210 ---- * on errors */ ! public final int parse(final byte[] buffer, final int length) { int index, resindex; *************** *** 285,290 **** * on errors */ ! private void readYPos(final byte[] buffer, final int bufferIndex) ! throws IOException { this.hex[this.hexlen++] = buffer[bufferIndex]; if (this.hexlen == 2) { --- 283,287 ---- * on errors */ ! private void readYPos(final byte[] buffer, final int bufferIndex) { this.hex[this.hexlen++] = buffer[bufferIndex]; if (this.hexlen == 2) { *************** *** 449,453 **** */ private int readId(final byte[] buffer, final int bufferIndex, ! final int resultIndex) throws IOException { int resindex = resultIndex; if ((char) buffer[bufferIndex] == '@') { --- 446,450 ---- */ private int readId(final byte[] buffer, final int bufferIndex, ! final int resultIndex) { int resindex = resultIndex; if ((char) buffer[bufferIndex] == '@') { *************** *** 500,504 **** */ private int readCommand(final byte[] buffer, final int bufferIndex, ! final int resultIndex) throws IOException { int resindex = resultIndex; if ((char) buffer[bufferIndex] == '@') { --- 497,501 ---- */ private int readCommand(final byte[] buffer, final int bufferIndex, ! final int resultIndex) { int resindex = resultIndex; if ((char) buffer[bufferIndex] == '@') { |