]> source.dussan.org Git - poi.git/commitdiff
Follow-on from r713909 (bug 46174) - fixing Name to support general formulas
authorJosh Micich <josh@apache.org>
Sat, 15 Nov 2008 17:22:24 +0000 (17:22 +0000)
committerJosh Micich <josh@apache.org>
Sat, 15 Nov 2008 17:22:24 +0000 (17:22 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@717882 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/interfaces-jdk15/org/apache/poi/ss/usermodel/Name.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFName.java

index a0061b951578d12ccbeaca7634f646702424a8ae..6ca59a651f3815599b2d4ca344dc0d175b677460 100644 (file)
@@ -36,18 +36,25 @@ public interface Name {
      */
     void setNameName(String nameName);
 
-    /** 
-     * gets the reference of the named range
-     * @return reference of the named range
+    /**
+     * @deprecated (Nov 2008) Misleading name. Use {@link #getFormula()} instead.
      */
     String getReference();
 
-    /** 
-     * sets the reference of this named range
-     * @param ref the reference to set
+    /**
+     * @deprecated (Nov 2008) Misleading name. Use {@link #setFormula(String)} instead.
      */
    void setReference(String ref);
 
+   /**
+     * @return the formula text defining this name
+    */
+   String getFormula();
+   
+   /**
+    * Sets the formula text defining this name
+   */
+   void setFormula(String formulaText);
     /**
      * Checks if this name is a function name
      *
index 4142bf3361b89fa05c793aeae552eb6d0579e9a6..d4b87ab6d7d2aa3827c641bb2f4d2ddfe3282d6c 100644 (file)
@@ -18,8 +18,8 @@ package org.apache.poi.xssf.usermodel;
 
 import org.apache.poi.ss.usermodel.Name;
 import org.apache.poi.ss.util.AreaReference;
-import org.apache.poi.util.POILogger;
 import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDefinedName;
 
 /**
@@ -50,8 +50,7 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDefinedName;
  * @author Nick Burch
  * @author Yegor Kozlov
  */
-public class XSSFName implements Name {
-    private static POILogger logger = POILogFactory.getLogger(XSSFWorkbook.class);
+public final class XSSFName implements Name {
 
     /**
      * A built-in defined name that specifies the workbook's print area
@@ -153,28 +152,37 @@ public class XSSFName implements Name {
         ctName.setName(name);
     }
 
+    /**
+     * @deprecated (Nov 2008) Misleading name. Use {@link #getFormula()} instead.
+     */
+    public String getReference() {
+        return getFormula();
+    }
+
+    /**
+     * @deprecated (Nov 2008) Misleading name. Use {@link #setFormula(String)} instead.
+     */
+    public void setReference(String ref){
+       setFormula(ref);
+    }
     /**
      * Returns the reference of this named range, such as Sales!C20:C30.
      *
      * @return the reference of this named range
      */
-    public String getReference() {
+    public String getFormula() {
         return ctName.getStringValue();
     }
 
     /**
      * Sets the reference of this named range, such as Sales!C20:C30.
      *
-     * @param ref the reference to set
+     * @param formulaText the reference to set
      * @throws IllegalArgumentException if the specified reference is unparsable
      */
-    public void setReference(String ref) {
-        try {
-            ref = AreaReference.isContiguous(ref) ? new AreaReference(ref).formatAsString() : ref;
-        } catch (IllegalArgumentException e){
-            logger.log(POILogger.WARN, "failed to parse cell reference. Setting raw value");
-        }
-        ctName.setStringValue(ref);
+    public void setFormula(String formulaText) {
+       // TODO parse formula and throw IllegalArgumentException if problem
+        ctName.setStringValue(formulaText);
     }
 
     /**