]> source.dussan.org Git - poi.git/commitdiff
Merged revisions 696501 via svnmerge from
authorJosh Micich <josh@apache.org>
Thu, 18 Sep 2008 22:13:01 +0000 (22:13 +0000)
committerJosh Micich <josh@apache.org>
Thu, 18 Sep 2008 22:13:01 +0000 (22:13 +0000)
https://svn.apache.org/repos/asf/poi/trunk

........
  r696501 | josh | 2008-09-17 15:35:09 -0700 (Wed, 17 Sep 2008) | 1 line

  Small tweak to NamePtg and Ref3DPtg
........

git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@696831 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/model/FormulaParser.java
src/java/org/apache/poi/hssf/record/NameRecord.java
src/java/org/apache/poi/hssf/record/formula/NamePtg.java
src/java/org/apache/poi/hssf/record/formula/Ref3DPtg.java
src/java/org/apache/poi/hssf/usermodel/HSSFName.java

index 32f38d40d1d75f35a402aeef436e2f45c2e0003e..a3fc9c1c4995201d6d99b7cf50c04d168fa9022d 100644 (file)
@@ -319,7 +319,7 @@ public final class FormulaParser {
         for(int i = 0; i < book.getNumberOfNames(); i++) {
             // named range name matching is case insensitive
             if(book.getNameAt(i).getNameName().equalsIgnoreCase(name)) {
-                return new NamePtg(name, book);
+                return new NamePtg(i);
             }
         }
         throw new FormulaParseException("Specified named range '"
@@ -388,7 +388,7 @@ public final class FormulaParser {
 
                 // calls to user-defined functions within the workbook
                 // get a Name token which points to a defined name record
-                nameToken = new NamePtg(name, this.book);
+                nameToken = new NamePtg(nameIndex);
             } else {
                                if(book instanceof HSSFWorkbook) {
                                        nameToken = ((HSSFWorkbook)book).getNameXPtg(name);
index 215c20feec24d5486546ee13972f2cd1814d5f69..1a47e544dcbe81dd4cd606155c0cb25c0025de9d 100644 (file)
@@ -447,7 +447,7 @@ public final class NameRecord extends Record {
        /** gets the extern sheet number
         * @return extern sheet index
         */
-       public short getExternSheetNumber(){
+       public int getExternSheetNumber(){
                if (field_13_name_definition.length < 1) {
                        return 0;
                }
@@ -513,7 +513,7 @@ public final class NameRecord extends Record {
                        oldPtg = field_13_name_definition[0];
                }
                List temp = new ArrayList();
-               short externSheetIndex = 0;
+               int externSheetIndex = 0;
 
                if (oldPtg.getClass() == Area3DPtg.class){
                        externSheetIndex =  ((Area3DPtg) oldPtg).getExternSheetIndex();
index a29ae5541df643f007faf47b60192a2af2207ad6..1087ed9d236b41e577b37d5d48206e0c20fdd60a 100644 (file)
@@ -18,7 +18,6 @@
 package org.apache.poi.hssf.record.formula;
 
 import org.apache.poi.hssf.record.RecordInputStream;
-import org.apache.poi.ss.usermodel.Name;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.util.LittleEndian;
 
@@ -31,33 +30,14 @@ public final class NamePtg extends OperandPtg {
     public final static short sid  = 0x23;
     private final static int  SIZE = 5;
     /** one-based index to defined name record */
-    private short             field_1_label_index;
+    private int  field_1_label_index;
     private short             field_2_zero;   // reserved must be 0
 
     /**
-     * Creates new NamePtg and sets its name index to that of the corresponding defined name record
-     * in the workbook.  The search for the name record is case insensitive.  If it is not found, 
-     * it gets created.
+     * @param nameIndex zero-based index to name within workbook
      */
-    public NamePtg(String name, Workbook book) {
-        field_1_label_index = (short)(1+getOrCreateNameRecord(book, name)); // convert to 1-based
-    }
-    /**
-     * @return zero based index of the found or newly created defined name record. 
-     */
-    private static final int getOrCreateNameRecord(Workbook book, String name) {
-        // perhaps this logic belongs in Workbook?
-        int countNames = book.getNumberOfNames();
-        for (int i = 0; i < countNames; i++) {
-            if(name.equalsIgnoreCase( book.getNameName(i) )) {
-                return i; 
-            }
-        }
-        
-        Name nameObj = book.createName();
-        nameObj.setNameName(name);
-        
-        return countNames;
+    public NamePtg(int nameIndex) {
+        field_1_label_index = 1+nameIndex; // convert to 1-based
     }
 
     /** Creates new NamePtg */
@@ -75,9 +55,9 @@ public final class NamePtg extends OperandPtg {
     }
 
     public void writeBytes(byte [] array, int offset) {
-        array[offset+0]= (byte) (sid + getPtgClass());
-        LittleEndian.putShort(array,offset+1,field_1_label_index);
-        LittleEndian.putShort(array,offset+3, field_2_zero);
+       LittleEndian.putByte(array, offset + 0, sid + getPtgClass());
+               LittleEndian.putUShort(array, offset + 1, field_1_label_index);
+               LittleEndian.putUShort(array, offset + 3, field_2_zero);
     }
 
     public int getSize() {
index 308e9f0b53a3e5306bf6ee217274bc4de478af7a..a6ca3db2ebbe54344511281516aecf199fd4bfd6 100644 (file)
@@ -44,7 +44,7 @@ public final class Ref3DPtg extends RefPtgBase {
         readCoordinates(in);
     }
     
-    public Ref3DPtg(String cellref, short externIdx ) {
+    public Ref3DPtg(String cellref, int externIdx ) {
         CellReference c= new CellReference(cellref);
         setRow(c.getRow());
         setColumn(c.getCol());
@@ -65,17 +65,17 @@ public final class Ref3DPtg extends RefPtgBase {
     }
 
     public void writeBytes(byte [] array, int offset) {
-        array[ 0 + offset ] = (byte) (sid + getPtgClass());
-        LittleEndian.putShort(array, 1 + offset , getExternSheetIndex());
-        writeCoordinates(array, offset+3);
+       LittleEndian.putByte(array, 0 + offset, sid + getPtgClass());
+               LittleEndian.putUShort(array, 1 + offset, getExternSheetIndex());
+               writeCoordinates(array, offset + 3);
     }
 
     public int getSize() {
         return SIZE;
     }
 
-    public short getExternSheetIndex(){
-        return (short)field_1_index_extern_sheet;
+    public int getExternSheetIndex(){
+        return field_1_index_extern_sheet;
     }
 
     public void setExternSheetIndex(int index){
index 6de2293794c57d5f11b78ce93c493be059107f2a..bae2484d7c7a672a40dcedd5679d1572004e85df 100644 (file)
@@ -48,7 +48,7 @@ public class HSSFName implements Name {
      * @return sheet name, which this named range referred to
      */
     public String getSheetName() {
-        short indexToExternSheet = _definedNameRec.getExternSheetNumber();
+        int indexToExternSheet = _definedNameRec.getExternSheetNumber();
 
         return _book.getWorkbook().findSheetNameFromExternSheet(indexToExternSheet);
     }