diff options
author | Adrian Cumiskey <acumiskey@apache.org> | 2007-12-05 17:19:43 +0000 |
---|---|---|
committer | Adrian Cumiskey <acumiskey@apache.org> | 2007-12-05 17:19:43 +0000 |
commit | 0b38aa5d0fd8f2c70b00eccbbae6ac8956ab0b05 (patch) | |
tree | 12e369f4e0412a4fe4999fbe9ad838c3ca13becb /src/java/org/apache/fop/render/afp | |
parent | 8f7afa44a22a52d98516576bbb6877f15ecf8294 (diff) | |
download | xmlgraphics-fop-0b38aa5d0fd8f2c70b00eccbbae6ac8956ab0b05.tar.gz xmlgraphics-fop-0b38aa5d0fd8f2c70b00eccbbae6ac8956ab0b05.zip |
Corrected javadoc, fixed checkstyle issues, and now also correctly caters for negative number conversions
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@601423 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org/apache/fop/render/afp')
-rw-r--r-- | src/java/org/apache/fop/render/afp/tools/BinaryUtils.java | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/src/java/org/apache/fop/render/afp/tools/BinaryUtils.java b/src/java/org/apache/fop/render/afp/tools/BinaryUtils.java index 5ac7ad9a3..dd21a35cf 100644 --- a/src/java/org/apache/fop/render/afp/tools/BinaryUtils.java +++ b/src/java/org/apache/fop/render/afp/tools/BinaryUtils.java @@ -33,40 +33,41 @@ public final class BinaryUtils { * to the length specified by bufsize. * @param integer The int representation. * @param bufsize The required byte array size. + * @return the hexadecimal digits as a byte array */ public static byte[] convert(int integer, int bufsize) { - StringBuffer buf = new StringBuffer(Integer.toHexString(integer)); - if (buf.length() % 2 == 0) { - // Ignore even number of digits - } else { - // Convert to an even number of digits + //Convert to an even number of digits + if (buf.length() % 2 != 0) { buf.insert(0, "0"); } int size = buf.length() / 2; - while (size < bufsize) { - buf.insert(0, "00"); - size++; - }; - return convert(buf.toString()); - + if (size > bufsize) { + buf.delete(0, buf.length() - (bufsize * 2)); + } else { + while (size < bufsize) { + buf.insert(0, "00"); + size++; + } + } + return convert(buf.toString()); } /** * Convert an int into the corresponding byte array by encoding each * two hexadecimal digits as a char. * @param integer The int representation + * @return the hexadecimal digits as a byte array */ public static byte[] convert(int integer) { - return convert(Integer.toHexString(integer)); - } /** * Convert a String of hexadecimal digits into the corresponding * byte array by encoding each two hexadecimal digits as a byte. * @param digits The hexadecimal digits representation. + * @return the hexadecimal digits as a byte array */ public static byte[] convert(String digits) { @@ -82,26 +83,28 @@ public final class BinaryUtils { char c1 = digits.charAt(i); char c2 = digits.charAt(i + 1); byte b = 0; - if ((c1 >= '0') && (c1 <= '9')) + if ((c1 >= '0') && (c1 <= '9')) { b += ((c1 - '0') * 16); - else if ((c1 >= 'a') && (c1 <= 'f')) + } else if ((c1 >= 'a') && (c1 <= 'f')) { b += ((c1 - 'a' + 10) * 16); - else if ((c1 >= 'A') && (c1 <= 'F')) + } else if ((c1 >= 'A') && (c1 <= 'F')) { b += ((c1 - 'A' + 10) * 16); - else + } else { throw new IllegalArgumentException("Bad hexadecimal digit"); - if ((c2 >= '0') && (c2 <= '9')) + } + + if ((c2 >= '0') && (c2 <= '9')) { b += (c2 - '0'); - else if ((c2 >= 'a') && (c2 <= 'f')) + } else if ((c2 >= 'a') && (c2 <= 'f')) { b += (c2 - 'a' + 10); - else if ((c2 >= 'A') && (c2 <= 'F')) + } else if ((c2 >= 'A') && (c2 <= 'F')) { b += (c2 - 'A' + 10); - else + } else { throw new IllegalArgumentException("Bad hexadecimal digit"); + } baos.write(b); } return (baos.toByteArray()); - } /** |