]> source.dussan.org Git - poi.git/commitdiff
Start generalising the IgnoredErrorType code for later HSSF use too #56892
authorNick Burch <nick@apache.org>
Mon, 15 Feb 2016 14:40:24 +0000 (14:40 +0000)
committerNick Burch <nick@apache.org>
Mon, 15 Feb 2016 14:40:24 +0000 (14:40 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1730540 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/ss/usermodel/IgnoredErrorType.java [new file with mode: 0644]
src/ooxml/java/org/apache/poi/xssf/usermodel/IgnoredErrorType.java [deleted file]
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFIgnoredErrorHelper.java [new file with mode: 0644]

diff --git a/src/java/org/apache/poi/ss/usermodel/IgnoredErrorType.java b/src/java/org/apache/poi/ss/usermodel/IgnoredErrorType.java
new file mode 100644 (file)
index 0000000..183fe29
--- /dev/null
@@ -0,0 +1,45 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.ss.usermodel;
+
+
+/**
+ * Types of ignored workbook and worksheet error.
+ * 
+ * TODO Give more details on what these mean
+ */
+public enum IgnoredErrorType {
+
+    CALCULATED_COLUMN,
+    
+    EMPTY_CELL_REFERENCE,
+    
+    EVALUATION_ERROR,
+    
+    FORMULA,
+    
+    FORMULA_RANGE,
+    
+    LIST_DATA_VALIDATION,
+    
+    NUMBER_STORED_AS_TEXT,
+    
+    TWO_DIGIT_TEXT_YEAR,
+    
+    UNLOCKED_FORMULA;
+}
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/IgnoredErrorType.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/IgnoredErrorType.java
deleted file mode 100644 (file)
index 335d578..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.xssf.usermodel;
-
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTIgnoredError;
-
-/**
- * Types of ignored error.
- */
-public enum IgnoredErrorType {
-
-    CALCULATED_COLUMN,
-    
-    EMPTY_CELL_REFERENCE,
-    
-    EVALUATION_ERROR,
-    
-    FORMULA,
-    
-    FORMULA_RANGE,
-    
-    LIST_DATA_VALIDATION,
-    
-    NUMBER_STORED_AS_TEXT,
-    
-    TWO_DIGIT_TEXT_YEAR,
-    
-    UNLOCKED_FORMULA;
-    
-    // Methods below are not part of the public API
-    
-    boolean isSet(CTIgnoredError error) {
-        switch(this) {
-            case CALCULATED_COLUMN:
-                return error.isSetCalculatedColumn();
-            case EMPTY_CELL_REFERENCE:
-                return error.isSetEmptyCellReference();
-            case EVALUATION_ERROR:
-                return error.isSetEvalError();
-            case FORMULA:
-                return error.isSetFormula();
-            case FORMULA_RANGE:
-                return error.isSetFormulaRange();
-            case LIST_DATA_VALIDATION:
-                return error.isSetListDataValidation();
-            case NUMBER_STORED_AS_TEXT:
-                return error.isSetNumberStoredAsText();
-            case TWO_DIGIT_TEXT_YEAR:
-                return error.isSetTwoDigitTextYear();
-            case UNLOCKED_FORMULA:
-                return error.isSetUnlockedFormula();
-            default:
-                throw new IllegalStateException();
-            }
-    }
-    
-    void set(CTIgnoredError error) {
-        switch(this) {
-        case CALCULATED_COLUMN:
-            error.setCalculatedColumn(true);
-            break;
-        case EMPTY_CELL_REFERENCE:
-            error.setEmptyCellReference(true);
-            break;
-        case EVALUATION_ERROR:
-            error.setEvalError(true);
-            break;
-        case FORMULA:
-            error.setFormula(true);
-            break;
-        case FORMULA_RANGE:
-            error.setFormulaRange(true);
-            break;
-        case LIST_DATA_VALIDATION:
-            error.setListDataValidation(true);
-            break;
-        case NUMBER_STORED_AS_TEXT:
-            error.setNumberStoredAsText(true);
-            break;
-        case TWO_DIGIT_TEXT_YEAR:
-            error.setTwoDigitTextYear(true);
-            break;
-        case UNLOCKED_FORMULA:
-            error.setUnlockedFormula(true);
-            break;
-        default:
-            throw new IllegalStateException();
-        }
-    }
-    
-}
index 5d4c6314d03709cdf85a6b35b4eeb4a55f9a58c7..40d765a1da0b898a18e2d4ec0e7b41bb14caacf9 100644 (file)
@@ -62,6 +62,7 @@ import org.apache.poi.ss.usermodel.DataValidation;
 import org.apache.poi.ss.usermodel.DataValidationHelper;
 import org.apache.poi.ss.usermodel.Footer;
 import org.apache.poi.ss.usermodel.Header;
+import org.apache.poi.ss.usermodel.IgnoredErrorType;
 import org.apache.poi.ss.usermodel.IndexedColors;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -78,6 +79,7 @@ import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
 import org.apache.poi.xssf.model.CommentsTable;
 import org.apache.poi.xssf.usermodel.helpers.ColumnHelper;
+import org.apache.poi.xssf.usermodel.helpers.XSSFIgnoredErrorHelper;
 import org.apache.poi.xssf.usermodel.helpers.XSSFRowShifter;
 import org.apache.xmlbeans.XmlException;
 import org.apache.xmlbeans.XmlOptions;
@@ -4149,14 +4151,14 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
         CTIgnoredError ctIgnoredError = ctIgnoredErrors.addNewIgnoredError();
         ctIgnoredError.setSqref(Arrays.asList(ref));
         for (IgnoredErrorType errType : ignoredErrorTypes) {
-            errType.set(ctIgnoredError);
+            XSSFIgnoredErrorHelper.set(errType, ctIgnoredError);
         }
     }
 
     private Set<IgnoredErrorType> getErrorTypes(CTIgnoredError err) {
         Set<IgnoredErrorType> result = new LinkedHashSet<IgnoredErrorType>();
         for (IgnoredErrorType errType : IgnoredErrorType.values()) {
-            if (errType.isSet(err)) {
+            if (XSSFIgnoredErrorHelper.isSet(errType, err)) {
                 result.add(errType);
             }
         }
diff --git a/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFIgnoredErrorHelper.java b/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFIgnoredErrorHelper.java
new file mode 100644 (file)
index 0000000..4911a35
--- /dev/null
@@ -0,0 +1,85 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.xssf.usermodel.helpers;
+
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTIgnoredError;
+import org.apache.poi.ss.usermodel.IgnoredErrorType;
+
+/**
+ * XSSF-specific code for working with ignored errors
+ */
+public class XSSFIgnoredErrorHelper {
+    public static boolean isSet(IgnoredErrorType errorType, CTIgnoredError error) {
+        switch(errorType) {
+            case CALCULATED_COLUMN:
+                return error.isSetCalculatedColumn();
+            case EMPTY_CELL_REFERENCE:
+                return error.isSetEmptyCellReference();
+            case EVALUATION_ERROR:
+                return error.isSetEvalError();
+            case FORMULA:
+                return error.isSetFormula();
+            case FORMULA_RANGE:
+                return error.isSetFormulaRange();
+            case LIST_DATA_VALIDATION:
+                return error.isSetListDataValidation();
+            case NUMBER_STORED_AS_TEXT:
+                return error.isSetNumberStoredAsText();
+            case TWO_DIGIT_TEXT_YEAR:
+                return error.isSetTwoDigitTextYear();
+            case UNLOCKED_FORMULA:
+                return error.isSetUnlockedFormula();
+            default:
+                throw new IllegalStateException();
+            }
+    }
+    
+    public static void set(IgnoredErrorType errorType, CTIgnoredError error) {
+        switch(errorType) {
+        case CALCULATED_COLUMN:
+            error.setCalculatedColumn(true);
+            break;
+        case EMPTY_CELL_REFERENCE:
+            error.setEmptyCellReference(true);
+            break;
+        case EVALUATION_ERROR:
+            error.setEvalError(true);
+            break;
+        case FORMULA:
+            error.setFormula(true);
+            break;
+        case FORMULA_RANGE:
+            error.setFormulaRange(true);
+            break;
+        case LIST_DATA_VALIDATION:
+            error.setListDataValidation(true);
+            break;
+        case NUMBER_STORED_AS_TEXT:
+            error.setNumberStoredAsText(true);
+            break;
+        case TWO_DIGIT_TEXT_YEAR:
+            error.setTwoDigitTextYear(true);
+            break;
+        case UNLOCKED_FORMULA:
+            error.setUnlockedFormula(true);
+            break;
+        default:
+            throw new IllegalStateException();
+        }
+    }
+}