]> source.dussan.org Git - poi.git/commitdiff
Added method setFunction(boolean) for defined names
authorYegor Kozlov <yegor@apache.org>
Mon, 7 Sep 2009 05:17:23 +0000 (05:17 +0000)
committerYegor Kozlov <yegor@apache.org>
Mon, 7 Sep 2009 05:17:23 +0000 (05:17 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@811998 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/status.xml
src/java/org/apache/poi/hssf/record/NameRecord.java
src/java/org/apache/poi/hssf/usermodel/HSSFName.java
src/java/org/apache/poi/ss/usermodel/Name.java
src/testcases/org/apache/poi/ss/usermodel/BaseTestNamedRange.java

index 9d0d3a4a7fe2de428ec425c0a979c8e2794ea30a..21d2c70000d7375bbecec9e7b6d8efdbc8c60348 100644 (file)
@@ -33,6 +33,7 @@
 
     <changes>
         <release version="3.5-beta7" date="2009-??-??">
+           <action dev="POI-DEVELOPERS" type="add">47771 - Added method setFunction(boolean) for defined names</action>
            <action dev="POI-DEVELOPERS" type="add">47768 - Implementation of Excel "Days360" and "Npv" functions</action>
            <action dev="POI-DEVELOPERS" type="fix">47751 - Do not allow HSSF's cell text longer than 32,767 characters</action>
            <action dev="POI-DEVELOPERS" type="add">47757 - Added an example demonstrating how to convert an XLSX workbook to CSV</action>
index c9b6f65708ff0e998ad68eaf9bf41845ae720c59..6b38e36d4e0e6c1d887962413e2f8baa3bd8eea6 100644 (file)
@@ -34,6 +34,8 @@ import org.apache.poi.util.StringUtil;
  * @author  Sergei Kozello (sergeikozello at mail.ru)
  * @author Glen Stampoultzis (glens at apache.org)
  * @version 1.0-pre
+ *  
+ * Modified 8/31/09 by Petr Udalau - added method setFunction(boolean)
  */
 public final class NameRecord extends StandardRecord {
     public final static short sid = 0x0018;
@@ -237,6 +239,20 @@ public final class NameRecord extends StandardRecord {
        public boolean isFunctionName() {
                return (field_1_option_flag & Option.OPT_FUNCTION_NAME) != 0;
        }
+       
+    /**
+     * Indicates that the defined name refers to a user-defined function.
+     * This attribute is used when there is an add-in or other code project associated with the file.
+     *
+     * @param value <code>true</code> indicates the name refers to a function.
+     */
+       public void setFunction(boolean function){
+               if (function) {
+                       field_1_option_flag |= Option.OPT_FUNCTION_NAME;
+               } else {
+                       field_1_option_flag &= (~Option.OPT_FUNCTION_NAME);
+               }
+       }
 
        /**
         * @return <code>true</code> if name has a formula (named range or defined value)
index bceaf340adf9e120854752a93d56dea5a0bf3e1f..662ec2e1aae2bd7c68781e7b7bf6101a69dfb33e 100644 (file)
@@ -243,4 +243,15 @@ public final class HSSFName implements Name {
         _definedNameRec.setDescriptionText(comment);
     }
 
+    /**
+     * Indicates that the defined name refers to a user-defined function.
+     * This attribute is used when there is an add-in or other code project associated with the file.
+     *
+     * @param value <code>true</code> indicates the name refers to a function.
+     */
+       public void setFunction(boolean value) {
+               _definedNameRec.setFunction(value);
+               
+       }
+
 }
index 696eb3c1aceea341fc5504eefb7707ec4dec0d16..0cc9d98e9ed502e92338a3e94626be216ec89162 100644 (file)
@@ -49,6 +49,8 @@ package org.apache.poi.ss.usermodel;
  *  name.setRefersToFormula("IF(Loan_Amount*Interest_Rate>0,1,0)");
  *
  * </blockquote></pre>
+ *  
+ * Modified 8/31/09 by Petr Udalau - added method setFunction(boolean)
  */
 public interface Name {
 
@@ -181,4 +183,12 @@ public interface Name {
      * @param comment the user comment for this named range
      */
     public void setComment(String comment);
+
+    /**
+     * Indicates that the defined name refers to a user-defined function.
+     * This attribute is used when there is an add-in or other code project associated with the file.
+     *
+     * @param value <code>true</code> indicates the name refers to a function.
+     */
+    void setFunction(boolean value);
 }
index a645db57b36a14222f351e87c23d3634f64a6f6b..08ce49b97dbfd98c50305517f43fc99d16837f2a 100755 (executable)
@@ -544,4 +544,19 @@ public abstract class BaseTestNamedRange extends TestCase {
         }
 
     }
+
+    public void testFunctionNames() {
+        Workbook wb = getTestDataProvider().createWorkbook();
+        Name n = wb.createName();
+        assertFalse(n.isFunctionName());
+
+        n.setFunction(false);
+        assertFalse(n.isFunctionName());
+
+        n.setFunction(true);
+        assertTrue(n.isFunctionName());
+
+        n.setFunction(false);
+        assertFalse(n.isFunctionName());
+    }
 }
\ No newline at end of file