diff --git a/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java b/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java index be7efab2a..d08ee3279 100644 --- a/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java +++ b/src/java/org/apache/poi/hssf/record/formula/AreaPtg.java @@ -63,7 +63,7 @@ package org.apache.poi.hssf.record.formula; import org.apache.poi.util.LittleEndian; /** - * + * Specifies a rectangular area of cells * @author andy */ diff --git a/src/java/org/apache/poi/hssf/record/formula/FormulaParser.java b/src/java/org/apache/poi/hssf/record/formula/FormulaParser.java index aa8d626eb..8743b13a5 100644 --- a/src/java/org/apache/poi/hssf/record/formula/FormulaParser.java +++ b/src/java/org/apache/poi/hssf/record/formula/FormulaParser.java @@ -250,7 +250,7 @@ public class FormulaParser { boolean cellRef = true ; //we should probably do it with reg exp?? if (cellRef) { - tokens.add(new ValueReferencePtg(name)); //TODO we need to pass in Name somewhere?? + tokens.add(new ReferencePtg(name)); //TODO we need to pass in Name somewhere?? }else { //handle after named range is integrated!! } diff --git a/src/java/org/apache/poi/hssf/record/formula/Ptg.java b/src/java/org/apache/poi/hssf/record/formula/Ptg.java index 925dd31eb..b7854e80a 100644 --- a/src/java/org/apache/poi/hssf/record/formula/Ptg.java +++ b/src/java/org/apache/poi/hssf/record/formula/Ptg.java @@ -206,8 +206,8 @@ public abstract class Ptg retval = new AttrPtg(data, offset); break; - case ValueReferencePtg.sid : - retval = new ValueReferencePtg(data, offset); + case ReferencePtg.sid : + retval = new ReferencePtg(data, offset); break; case ParenthesisPtg.sid : diff --git a/src/java/org/apache/poi/hssf/record/formula/ValueReferencePtg.java b/src/java/org/apache/poi/hssf/record/formula/ValueReferencePtg.java deleted file mode 100644 index 8b752bc5a..000000000 --- a/src/java/org/apache/poi/hssf/record/formula/ValueReferencePtg.java +++ /dev/null @@ -1,189 +0,0 @@ - -/* ==================================================================== - * The Apache Software License, Version 1.1 - * - * Copyright (c) 2002 The Apache Software Foundation. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by the - * Apache Software Foundation (http://www.apache.org/)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Apache" and "Apache Software Foundation" and - * "Apache POI" must not be used to endorse or promote products - * derived from this software without prior written permission. For - * written permission, please contact apache@apache.org. - * - * 5. Products derived from this software may not be called "Apache", - * "Apache POI", nor may "Apache" appear in their name, without - * prior written permission of the Apache Software Foundation. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of the Apache Software Foundation. For more - * information on the Apache Software Foundation, please see - * . - */ - -/* - * ValueReferencePtg.java - * - * Created on November 21, 2001, 5:27 PM - */ -package org.apache.poi.hssf.record.formula; - -import org.apache.poi.util.LittleEndian; -import org.apache.poi.util.BitField; - -import org.apache.poi.hssf.util.ReferenceUtil; - -/** - * ValueReferencePtg - handles references (such as A1, A2, IA4) - Should also - * be made to handle relative versus absolute references but I don't know enough - * about using them in excel to know if its correct. Seems inverted to me. - * FIXME = correct abs vs relative references - * @author Andrew C. Oliver (acoliver@apache.org) - */ - -public class ValueReferencePtg - extends Ptg -{ - private final static int SIZE = 5; - public final static byte sid = 0x44; - private short field_1_row; - private short field_2_col; - private BitField rowRelative = new BitField(0x8000); - private BitField colRelative = new BitField(0x4000); - - /** Creates new ValueReferencePtg */ - - public ValueReferencePtg() - { - } - - /** - * Takes in a String represnetation of a cell reference and fills out the - * numeric fields. - */ - public ValueReferencePtg(String cellref) { - int[] xy = ReferenceUtil.getXYFromReference(cellref); - setRow((short)xy[0]); - setColumn((short)xy[1]); - setColRelative(true); - setRowRelative(true); - } - - /** Creates new ValueReferencePtg */ - - public ValueReferencePtg(byte [] data, int offset) - { - offset++; // adjust for ptg - field_1_row = LittleEndian.getShort(data, offset + 0); - field_2_col = LittleEndian.getShort(data, offset + 2); - - } - - public String toString() - { - StringBuffer buffer = new StringBuffer("[ValueReferencePtg]\n"); - - buffer.append("row = ").append(getRow()).append("\n"); - buffer.append("col = ").append(getColumnRaw()).append("\n"); - buffer.append("rowrelative = ").append(isRowRelative()).append("\n"); - buffer.append("colrelative = ").append(isColRelative()).append("\n"); - return buffer.toString(); - } - - public void writeBytes(byte [] array, int offset) - { - array[offset] = sid; - LittleEndian.putShort(array,offset+1,field_1_row); - LittleEndian.putShort(array,offset+3,field_2_col); - } - - public void setRow(short row) - { - field_1_row = row; - } - - public short getRow() - { - return field_1_row; - } - - public boolean isRowRelative() - { - return rowRelative.isSet(field_2_col); - } - - public void setRowRelative(boolean rel) { - field_2_col=rowRelative.setShortBoolean(field_2_col,rel); - } - - public boolean isColRelative() - { - return colRelative.isSet(field_2_col); - } - - public void setColRelative(boolean rel) { - field_2_col=colRelative.setShortBoolean(field_2_col,rel); - } - - public void setColumnRaw(short col) - { - field_2_col = col; - } - - public short getColumnRaw() - { - return field_2_col; - } - - public void setColumn(short col) - { - field_2_col = col; // fix this - } - - public short getColumn() - { - return rowRelative.setShortBoolean(colRelative.setShortBoolean(field_2_col,false),false); - } - - public int getSize() - { - return SIZE; - } - - public String toFormulaString() - { - return ReferenceUtil.getReferenceFromXY(getRow(),getColumn()); - } -}