aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org/apache/fop/render/afp
diff options
context:
space:
mode:
authorAdrian Cumiskey <acumiskey@apache.org>2007-12-05 17:19:43 +0000
committerAdrian Cumiskey <acumiskey@apache.org>2007-12-05 17:19:43 +0000
commit0b38aa5d0fd8f2c70b00eccbbae6ac8956ab0b05 (patch)
tree12e369f4e0412a4fe4999fbe9ad838c3ca13becb /src/java/org/apache/fop/render/afp
parent8f7afa44a22a52d98516576bbb6877f15ecf8294 (diff)
downloadxmlgraphics-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.java47
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());
-
}
/**