summaryrefslogtreecommitdiff
path: root/xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenDecoder.java
diff options
context:
space:
mode:
Diffstat (limited to 'xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenDecoder.java')
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenDecoder.java48
1 files changed, 27 insertions, 21 deletions
diff --git a/xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenDecoder.java b/xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenDecoder.java
index 7e5db6c93bdc..019197748809 100644
--- a/xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenDecoder.java
+++ b/xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenDecoder.java
@@ -18,14 +18,15 @@
package org.openoffice.xmerge.converter.xml.sxc.pexcel.records.formula;
-import java.io.*;
-import java.util.Vector;
-import java.util.Enumeration;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
-import org.openoffice.xmerge.util.Debug;
-import org.openoffice.xmerge.util.EndianConverter;
import org.openoffice.xmerge.converter.xml.sxc.pexcel.records.DefinedName;
import org.openoffice.xmerge.converter.xml.sxc.pexcel.records.Workbook;
+import org.openoffice.xmerge.util.Debug;
+import org.openoffice.xmerge.util.EndianConverter;
/**
* The TokenDecoder decodes a byte[] to an equivalent <code>String</code>. The only
@@ -79,9 +80,9 @@ public class TokenDecoder {
* @param formula A Pocket Excel Formula byte[]
* @return A <code>Vector</code> of deoded <code>Token</code>
*/
- public Vector getTokenVector(byte[] formula) {
+ public ArrayList getTokenVector(byte[] formula) {
- Vector v = new Vector();
+ ArrayList v = new ArrayList();
ByteArrayInputStream bis = new ByteArrayInputStream(formula);
int b = 0 ;
@@ -96,46 +97,46 @@ public class TokenDecoder {
case TokenConstants.TAREA3D:
Debug.log(Debug.TRACE, "Decoded 3D Area Cell Reference: ");
v.add(read3DCellAreaRefToken(bis));
- Debug.log(Debug.TRACE, "Decoded 3D Area Cell Reference: " + v.lastElement());
+ Debug.log(Debug.TRACE, "Decoded 3D Area Cell Reference: " + last(v));
break;
case TokenConstants.TREF3D:
Debug.log(Debug.TRACE, "Decoded 3D Cell Reference: ");
v.add(read3DCellRefToken(bis));
- Debug.log(Debug.TRACE, "Decoded 3D Cell Reference: " + v.lastElement());
+ Debug.log(Debug.TRACE, "Decoded 3D Cell Reference: " + last(v));
break;
case TokenConstants.TREF :
v.add(readCellRefToken(bis));
- Debug.log(Debug.TRACE, "Decoded Cell Reference: " + v.lastElement());
+ Debug.log(Debug.TRACE, "Decoded Cell Reference: " + last(v));
break;
case TokenConstants.TAREA :
v.add(readCellAreaRefToken(bis));
- Debug.log(Debug.TRACE, "Decoded Cell Area Reference: " + v.lastElement());
+ Debug.log(Debug.TRACE, "Decoded Cell Area Reference: " + last(v));
break;
case TokenConstants.TNUM :
v.add(readNumToken(bis));
- Debug.log(Debug.TRACE, "Decoded number : " + v.lastElement());
+ Debug.log(Debug.TRACE, "Decoded number : " + last(v));
break;
case TokenConstants.TFUNCVAR :
v.add(readFunctionVarToken(bis));
- Debug.log(Debug.TRACE, "Decoded variable argument function: " + v.lastElement());
+ Debug.log(Debug.TRACE, "Decoded variable argument function: " + last(v));
break;
case TokenConstants.TFUNC :
v.add(readFunctionToken(bis));
- Debug.log(Debug.TRACE, "Decoded function: " + v.lastElement());
+ Debug.log(Debug.TRACE, "Decoded function: " + last(v));
break;
case TokenConstants.TSTRING :
v.add(readStringToken(bis));
- Debug.log(Debug.TRACE, "Decoded string: " + v.lastElement());
+ Debug.log(Debug.TRACE, "Decoded string: " + last(v));
break;
case TokenConstants.TNAME :
v.add(readNameToken(bis));
- Debug.log(Debug.TRACE, "Decoded defined name: " + v.lastElement());
+ Debug.log(Debug.TRACE, "Decoded defined name: " + last(v));
break;
case TokenConstants.TUPLUS:
case TokenConstants.TUMINUS:
case TokenConstants.TPERCENT:
v.add(readOperatorToken(b, 1));
- Debug.log(Debug.TRACE, "Decoded Unary operator : " + v.lastElement());
+ Debug.log(Debug.TRACE, "Decoded Unary operator : " + last(v));
break;
case TokenConstants.TADD :
case TokenConstants.TSUB :
@@ -148,7 +149,7 @@ public class TokenDecoder {
case TokenConstants.TGREATER :
case TokenConstants.TNEQUALS :
v.add(readOperatorToken(b, 2));
- Debug.log(Debug.TRACE, "Decoded Binary operator : " + v.lastElement());
+ Debug.log(Debug.TRACE, "Decoded Binary operator : " + last(v));
break;
default :
@@ -158,6 +159,11 @@ public class TokenDecoder {
return v;
}
+ private static Object last(ArrayList list)
+ {
+ return list.get(list.size() - 1);
+ }
+
/**
* Converts a zero based integer to a char (eg. a=0, b=1).
* It assumes the integer is less than 26.
@@ -213,14 +219,14 @@ public class TokenDecoder {
buffer[1] = (byte) bis.read();
int nameIndex = EndianConverter.readShort(buffer);
bis.skip(12); // the next 12 bytes are unused
- Enumeration e = wb.getDefinedNames();
+ Iterator e = wb.getDefinedNames();
int i = 1;
while(i<nameIndex) {
- e.nextElement();
+ e.next();
i++;
}
Debug.log(Debug.TRACE,"Name index is " + nameIndex);
- DefinedName dn = (DefinedName)e.nextElement();
+ DefinedName dn = (DefinedName)e.next();
Debug.log(Debug.TRACE,"DefinedName is " + dn.getName());
return (tf.getOperandToken(dn.getName(), "NAME"));
}