aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrew C. Oliver <acoliver@apache.org>2002-04-23 23:56:46 +0000
committerAndrew C. Oliver <acoliver@apache.org>2002-04-23 23:56:46 +0000
commitc6e716311ae4d522d2aa76260498ce1cc476ce75 (patch)
treea4150f674693c729e42cab27af0ce0f27d9b1fcf /src
parent98908519c5b5dc1ed10d77aadf3d48ea6f622fa7 (diff)
downloadpoi-c6e716311ae4d522d2aa76260498ce1cc476ce75.tar.gz
poi-c6e716311ae4d522d2aa76260498ce1cc476ce75.zip
Synch up.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@352474 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src')
-rw-r--r--src/java/org/apache/poi/hssf/record/formula/AddPtg.java11
-rw-r--r--src/java/org/apache/poi/hssf/record/formula/AttrPtg.java10
-rw-r--r--src/java/org/apache/poi/hssf/record/formula/DividePtg.java9
-rw-r--r--src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java41
-rw-r--r--src/java/org/apache/poi/hssf/record/formula/OperationPtg.java19
-rw-r--r--src/java/org/apache/poi/hssf/record/formula/ParenthesisPtg.java10
-rw-r--r--src/java/org/apache/poi/hssf/record/formula/PowerPtg.java9
-rw-r--r--src/java/org/apache/poi/hssf/record/formula/SubtractPtg.java10
-rw-r--r--src/java/org/apache/poi/hssf/record/formula/ValueVariableFunctionPtg.java9
9 files changed, 108 insertions, 20 deletions
diff --git a/src/java/org/apache/poi/hssf/record/formula/AddPtg.java b/src/java/org/apache/poi/hssf/record/formula/AddPtg.java
index a47cf6956e..22af5b3b40 100644
--- a/src/java/org/apache/poi/hssf/record/formula/AddPtg.java
+++ b/src/java/org/apache/poi/hssf/record/formula/AddPtg.java
@@ -60,14 +60,15 @@
*/
package org.apache.poi.hssf.record.formula;
+import java.util.List;
+
/**
*
* @author andy
*/
public class AddPtg
- extends Ptg
- implements OperationPtg
+ extends OperationPtg
{
public final static int SIZE = 1;
public final static byte sid = 0x03;
@@ -147,4 +148,10 @@ public class AddPtg
public int getStringLength() {
return 1;
}
+
+ public void manipulate(List source, List results, int pos) {
+ standardBinaryManipulation(source,results,pos);
+
+ }
+
}
diff --git a/src/java/org/apache/poi/hssf/record/formula/AttrPtg.java b/src/java/org/apache/poi/hssf/record/formula/AttrPtg.java
index 0a9fb5c488..a92712e9cb 100644
--- a/src/java/org/apache/poi/hssf/record/formula/AttrPtg.java
+++ b/src/java/org/apache/poi/hssf/record/formula/AttrPtg.java
@@ -63,6 +63,8 @@ package org.apache.poi.hssf.record.formula;
import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.BitField;
+import java.util.List;
+
/**
* "Special Attributes"
* This seems to be a Misc Stuff and Junk record. One function it serves is
@@ -71,8 +73,7 @@ import org.apache.poi.util.BitField;
*/
public class AttrPtg
- extends Ptg
- implements OperationPtg
+ extends OperationPtg
{
public final static short sid = 0x19;
private final static int SIZE = 4;
@@ -205,4 +206,9 @@ public class AttrPtg
{
return -1;
}
+
+ public void manipulate(List source, List results, int pos) {
+ }
+
+
}
diff --git a/src/java/org/apache/poi/hssf/record/formula/DividePtg.java b/src/java/org/apache/poi/hssf/record/formula/DividePtg.java
index 241047f3bf..a3d76fe94e 100644
--- a/src/java/org/apache/poi/hssf/record/formula/DividePtg.java
+++ b/src/java/org/apache/poi/hssf/record/formula/DividePtg.java
@@ -60,14 +60,15 @@
*/
package org.apache.poi.hssf.record.formula;
+import java.util.List;
+
/**
*
* @author andy
*/
public class DividePtg
- extends Ptg
- implements OperationPtg
+ extends OperationPtg
{
public final static int SIZE = 1;
public final static byte sid = 0x06;
@@ -118,4 +119,8 @@ public class DividePtg
buffer.append(operands[ 1 ].toFormulaString());
return buffer.toString();
}
+
+ public void manipulate(List source, List results, int pos) {
+ }
+
}
diff --git a/src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java b/src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java
index 8dc1395f28..e4a1703798 100644
--- a/src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java
+++ b/src/java/org/apache/poi/hssf/record/formula/MultiplyPtg.java
@@ -60,17 +60,20 @@
*/
package org.apache.poi.hssf.record.formula;
+import java.util.List;
+
/**
*
* @author andy
*/
public class MultiplyPtg
- extends Ptg
- implements OperationPtg
+ extends OperationPtg
{
public final static int SIZE = 1;
public final static byte sid = 0x05;
+
+ private final static String MULTIPLY="*";
/** Creates new AddPtg */
@@ -83,6 +86,11 @@ public class MultiplyPtg
// doesn't need anything
}
+
+ protected MultiplyPtg(String formula, int offset) {
+
+ }
+
public void writeBytes(byte [] array, int offset)
{
@@ -104,6 +112,11 @@ public class MultiplyPtg
return 2;
}
+ public int getStringLength() {
+ return 1;
+ }
+
+
public String toFormulaString()
{
return "*";
@@ -118,4 +131,28 @@ public class MultiplyPtg
buffer.append(operands[ 1 ].toFormulaString());
return buffer.toString();
}
+
+ public void manipulate(List source, List results, int pos) {
+ standardBinaryManipulation(source, results, pos);
+ }
+
+ public int getPrecedence() {
+ return 3;
+ }
+
+ public static boolean isNextStringToken(String formula, int pos) {
+ boolean retval = false;
+ while (pos < formula.length() && Character.isWhitespace(formula.charAt(pos))) {
+ pos++;
+ }
+
+ if (pos < formula.length()) {
+ if (formula.charAt(pos) == MULTIPLY.toCharArray()[0]) {
+ retval = true;
+ }
+ }
+ return retval;
+ }
+
+
}
diff --git a/src/java/org/apache/poi/hssf/record/formula/OperationPtg.java b/src/java/org/apache/poi/hssf/record/formula/OperationPtg.java
index c598cfcfd0..6f56e2a1c1 100644
--- a/src/java/org/apache/poi/hssf/record/formula/OperationPtg.java
+++ b/src/java/org/apache/poi/hssf/record/formula/OperationPtg.java
@@ -60,20 +60,31 @@
*/
package org.apache.poi.hssf.record.formula;
+import java.util.List;
+
/**
* defines a Ptg that is an operation instead of an operand
* @author andy
*/
-public interface OperationPtg
+public abstract class OperationPtg extends Ptg
{
public final static int TYPE_UNARY = 0;
public final static int TYPE_BINARY = 1;
public final static int TYPE_FUNCTION = 2;
- public int getType();
+ public abstract int getType();
- public int getNumberOfOperands();
+ public abstract int getNumberOfOperands();
+
+ /**
+ * manipulate the list, moving the arguments for this function to the source list
+ * followed by the operator.
+ */
+ public abstract void manipulate(List source, List results, int pos);
- public String toFormulaString(Ptg [] operands);
+ public abstract String toFormulaString(Ptg [] operands);
+
+ protected void standardBinaryManipulation(List source,List results, int pos) {
+ }
}
diff --git a/src/java/org/apache/poi/hssf/record/formula/ParenthesisPtg.java b/src/java/org/apache/poi/hssf/record/formula/ParenthesisPtg.java
index 5bf163b07d..afd6289f40 100644
--- a/src/java/org/apache/poi/hssf/record/formula/ParenthesisPtg.java
+++ b/src/java/org/apache/poi/hssf/record/formula/ParenthesisPtg.java
@@ -55,16 +55,18 @@
package org.apache.poi.hssf.record.formula;
+import java.util.List;
+
/**
* Dummy class, we want it only for for the parsing process
* does not actually get into the file -- note by andy...there is a parenthesis PTG
* that can be written and is sometimes!
*
* Avik Sengupta <lists@aviksengupta.com>
+ * Andrew C. Oliver (acoliver at apache dot org)
*/
public class ParenthesisPtg
- extends Ptg
- implements OperationPtg
+ extends OperationPtg
{
@@ -99,5 +101,9 @@ public class ParenthesisPtg
{
return "(";
}
+
+ public void manipulate(List source, List results, int pos) {
+ }
+
}
diff --git a/src/java/org/apache/poi/hssf/record/formula/PowerPtg.java b/src/java/org/apache/poi/hssf/record/formula/PowerPtg.java
index e5e61be9e9..b3680eb097 100644
--- a/src/java/org/apache/poi/hssf/record/formula/PowerPtg.java
+++ b/src/java/org/apache/poi/hssf/record/formula/PowerPtg.java
@@ -60,14 +60,15 @@
*/
package org.apache.poi.hssf.record.formula;
+import java.util.List;
+
/**
*
* @author andy
*/
public class PowerPtg
- extends Ptg
- implements OperationPtg
+ extends OperationPtg
{
public final static int SIZE = 1;
public final static byte sid = 0x07;
@@ -118,4 +119,8 @@ public class PowerPtg
buffer.append(operands[ 0 ].toFormulaString());
return buffer.toString();
}
+
+ public void manipulate(List source, List results, int pos) {
+ }
+
}
diff --git a/src/java/org/apache/poi/hssf/record/formula/SubtractPtg.java b/src/java/org/apache/poi/hssf/record/formula/SubtractPtg.java
index e9c70c8340..d550df54d3 100644
--- a/src/java/org/apache/poi/hssf/record/formula/SubtractPtg.java
+++ b/src/java/org/apache/poi/hssf/record/formula/SubtractPtg.java
@@ -60,14 +60,15 @@
*/
package org.apache.poi.hssf.record.formula;
+import java.util.List;
+
/**
*
* @author andy
*/
public class SubtractPtg
- extends Ptg
- implements OperationPtg
+ extends OperationPtg
{
public final static int SIZE = 1;
public final static byte sid = 0x04;
@@ -118,4 +119,9 @@ public class SubtractPtg
buffer.append(operands[ 1 ].toFormulaString());
return buffer.toString();
}
+
+ public void manipulate(List source, List results, int pos) {
+ }
+
+
}
diff --git a/src/java/org/apache/poi/hssf/record/formula/ValueVariableFunctionPtg.java b/src/java/org/apache/poi/hssf/record/formula/ValueVariableFunctionPtg.java
index 84dcb51bdf..df3972803b 100644
--- a/src/java/org/apache/poi/hssf/record/formula/ValueVariableFunctionPtg.java
+++ b/src/java/org/apache/poi/hssf/record/formula/ValueVariableFunctionPtg.java
@@ -63,14 +63,15 @@ package org.apache.poi.hssf.record.formula;
import org.apache.poi.util.BitField;
import org.apache.poi.util.LittleEndian;
+import java.util.List;
+
/**
* An excel function with variable number of value arguments.
* @author andy
*/
public class ValueVariableFunctionPtg
- extends Ptg
- implements OperationPtg
+ extends OperationPtg
{
public final static short sid = 0x42;
private final static short SIZE = 4;
@@ -127,4 +128,8 @@ public class ValueVariableFunctionPtg
{
return toFormulaString();
}
+
+ public void manipulate(List source, List results, int pos) {
+ }
+
}