You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2017/12/31 00:13:38 UTC

svn commit: r1819705 - in /poi: site/src/documentation/content/xdocs/ trunk/src/java/org/apache/poi/hpsf/ trunk/src/ooxml/java/org/apache/poi/ss/extractor/ trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/

Author: kiwiwings
Date: Sun Dec 31 00:13:38 2017
New Revision: 1819705

URL: http://svn.apache.org/viewvc?rev=1819705&view=rev
Log:
#61940 - Replace ClassID statics with enum

Added:
    poi/trunk/src/java/org/apache/poi/hpsf/ClassIDPredefined.java   (with props)
Modified:
    poi/site/src/documentation/content/xdocs/status.xml
    poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java
    poi/trunk/src/ooxml/java/org/apache/poi/ss/extractor/EmbeddedExtractor.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java

Modified: poi/site/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/status.xml?rev=1819705&r1=1819704&r2=1819705&view=diff
==============================================================================
--- poi/site/src/documentation/content/xdocs/status.xml (original)
+++ poi/site/src/documentation/content/xdocs/status.xml Sun Dec 31 00:13:38 2017
@@ -65,9 +65,11 @@
         <summary-item>Adjust return type of some methods in Cell and related classes from int to CellType</summary-item>
         <summary-item>Removal of deprecated classes and methods that were marked for removal in v4.0</summary-item>
         <summary-item>Removal of deprecated classes and methods that were marked for removal in v3.18</summary-item>
+        <summary-item>Provide new ooxml-schemas-1.4.jar</summary-item>
       </summary>
       <actions>
-        <action dev="PD" type="fix" fixes-bug="61939" module="OPC">Provide schema for AlternateContent - provide new ooxml-schemas-1.4.jar</action>
+        <action dev="PD" type="fix" fixes-bug="61940" module="POI Overall">Replace ClassID statics with enum</action>
+        <action dev="PD" type="add" fixes-bug="61939" module="OPC">Provide schema for AlternateContent - provide new ooxml-schemas-1.4.jar</action>
         <action dev="PD" type="fix" fixes-bug="61787" module="HSSF">Change how deleted content is detected to not incorrectly see too much text as deleted, this was introduced with bug 58067</action>
         <action dev="PD" type="fix" fixes-bug="61798" module="HSSF">Fix usage of getLastCellNum() when calculating worksheet dimension during saving</action>
         <action dev="PD" type="fix" fixes-bug="61911" module="HWPF">Avoid IndexOutOfBounds access when reading pictures</action>

Modified: poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java?rev=1819705&r1=1819704&r2=1819705&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java (original)
+++ poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java Sun Dec 31 00:13:38 2017
@@ -30,43 +30,60 @@ import org.apache.poi.util.HexDump;
  * The ClassID (or CLSID) is a UUID - see RFC 4122 
  */
 public class ClassID {
-    public static final ClassID OLE10_PACKAGE  = new ClassID("{0003000C-0000-0000-C000-000000000046}");
-    public static final ClassID PPT_SHOW       = new ClassID("{64818D10-4F9B-11CF-86EA-00AA00B929E8}");
-    public static final ClassID XLS_WORKBOOK   = new ClassID("{00020841-0000-0000-C000-000000000046}");
-    public static final ClassID TXT_ONLY       = new ClassID("{5e941d80-bf96-11cd-b579-08002b30bfeb}");
-
-    // Excel V3
-    public static final ClassID EXCEL_V3       = new ClassID("{00030000-0000-0000-C000-000000000046}");
-    public static final ClassID EXCEL_V3_CHART = new ClassID("{00030001-0000-0000-C000-000000000046}");
-    public static final ClassID EXCEL_V3_MACRO = new ClassID("{00030002-0000-0000-C000-000000000046}");
-    // Excel V5
-    public static final ClassID EXCEL95        = new ClassID("{00020810-0000-0000-C000-000000000046}");
-    public static final ClassID EXCEL95_CHART  = new ClassID("{00020811-0000-0000-C000-000000000046}");
-    // Excel V8
-    public static final ClassID EXCEL97        = new ClassID("{00020820-0000-0000-C000-000000000046}");
-    public static final ClassID EXCEL97_CHART  = new ClassID("{00020821-0000-0000-C000-000000000046}");
-    // Excel V11
-    public static final ClassID EXCEL2003      = new ClassID("{00020812-0000-0000-C000-000000000046}");
-    // Excel V12
-    public static final ClassID EXCEL2007      = new ClassID("{00020830-0000-0000-C000-000000000046}");
-    public static final ClassID EXCEL2007_MACRO= new ClassID("{00020832-0000-0000-C000-000000000046}");
-    public static final ClassID EXCEL2007_XLSB = new ClassID("{00020833-0000-0000-C000-000000000046}");
-    // Excel V14
-    public static final ClassID EXCEL2010      = new ClassID("{00024500-0000-0000-C000-000000000046}");
-    public static final ClassID EXCEL2010_CHART= new ClassID("{00024505-0014-0000-C000-000000000046}");
-    public static final ClassID EXCEL2010_ODS  = new ClassID("{EABCECDB-CC1C-4A6F-B4E3-7F888A5ADFC8}");
-    
-    public static final ClassID WORD97         = new ClassID("{00020906-0000-0000-C000-000000000046}");
-    public static final ClassID WORD95         = new ClassID("{00020900-0000-0000-C000-000000000046}");
-    public static final ClassID WORD2007       = new ClassID("{F4754C9B-64F5-4B40-8AF4-679732AC0607}");
-    public static final ClassID WORD2007_MACRO = new ClassID("{18A06B6B-2F3F-4E2B-A611-52BE631B2D22}");
-    
-    public static final ClassID POWERPOINT97   = new ClassID("{64818D10-4F9B-11CF-86EA-00AA00B929E8}");
-    public static final ClassID POWERPOINT95   = new ClassID("{EA7BAE70-FB3B-11CD-A903-00AA00510EA3}");
-    public static final ClassID POWERPOINT2007 = new ClassID("{CF4F55F4-8F87-4D47-80BB-5808164BB3F8}");
-    public static final ClassID POWERPOINT2007_MACRO = new ClassID("{DC020317-E6E2-4A62-B9FA-B3EFE16626F4}");
-    
-    public static final ClassID EQUATION30     = new ClassID("{0002CE02-0000-0000-C000-000000000046}");
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID OLE10_PACKAGE  = ClassIDPredefined.OLE_V1_PACKAGE.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID PPT_SHOW       = ClassIDPredefined.POWERPOINT_V8.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID XLS_WORKBOOK   = ClassIDPredefined.EXCEL_V7_WORKBOOK.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID TXT_ONLY       = ClassIDPredefined.TXT_ONLY.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID EXCEL_V3       = ClassIDPredefined.EXCEL_V3.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID EXCEL_V3_CHART = ClassIDPredefined.EXCEL_V3_CHART.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID EXCEL_V3_MACRO = ClassIDPredefined.EXCEL_V3_MACRO.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID EXCEL95        = ClassIDPredefined.EXCEL_V7.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID EXCEL95_CHART  = ClassIDPredefined.EXCEL_V7_CHART.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID EXCEL97        = ClassIDPredefined.EXCEL_V8.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID EXCEL97_CHART  = ClassIDPredefined.EXCEL_V8_CHART.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID EXCEL2003      = ClassIDPredefined.EXCEL_V11.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID EXCEL2007      = ClassIDPredefined.EXCEL_V12.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID EXCEL2007_MACRO= ClassIDPredefined.EXCEL_V12_MACRO.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID EXCEL2007_XLSB = ClassIDPredefined.EXCEL_V12_XLSB.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID EXCEL2010      = ClassIDPredefined.EXCEL_V14.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID EXCEL2010_CHART= ClassIDPredefined.EXCEL_V14_CHART.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID EXCEL2010_ODS  = ClassIDPredefined.EXCEL_V14_ODS.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID WORD95         = ClassIDPredefined.WORD_V7.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID WORD97         = ClassIDPredefined.WORD_V8.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID WORD2007       = ClassIDPredefined.WORD_V12.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID WORD2007_MACRO = ClassIDPredefined.WORD_V12_MACRO.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID POWERPOINT97   = ClassIDPredefined.POWERPOINT_V8.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID POWERPOINT95   = ClassIDPredefined.POWERPOINT_V7.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID POWERPOINT2007 = ClassIDPredefined.POWERPOINT_V12.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID POWERPOINT2007_MACRO = ClassIDPredefined.POWERPOINT_V12_MACRO.getClassID();
+    /** @deprecated use enum {@link ClassIDPredefined} */ @Deprecated
+    public static final ClassID EQUATION30     = ClassIDPredefined.EQUATION_V3.getClassID();
 	
     /** The number of bytes occupied by this object in the byte stream. */
     public static final int LENGTH = 16;

Added: poi/trunk/src/java/org/apache/poi/hpsf/ClassIDPredefined.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hpsf/ClassIDPredefined.java?rev=1819705&view=auto
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hpsf/ClassIDPredefined.java (added)
+++ poi/trunk/src/java/org/apache/poi/hpsf/ClassIDPredefined.java Sun Dec 31 00:13:38 2017
@@ -0,0 +1,134 @@
+/* ====================================================================
+   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.hpsf;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public enum ClassIDPredefined {
+    /** OLE 1.0 package manager */
+    OLE_V1_PACKAGE       ("{0003000C-0000-0000-C000-000000000046}", ".bin", null),
+    /** Excel V3 - document */
+    EXCEL_V3             ("{00030000-0000-0000-C000-000000000046}", ".xls", "application/vnd.ms-excel"),
+    /** Excel V3 - chart */
+    EXCEL_V3_CHART       ("{00030001-0000-0000-C000-000000000046}", null, null),
+    /** Excel V3 - macro */
+    EXCEL_V3_MACRO       ("{00030002-0000-0000-C000-000000000046}", null, null),
+    /** Excel V7 / 95 - document */
+    EXCEL_V7             ("{00020810-0000-0000-C000-000000000046}", ".xls", "application/vnd.ms-excel"),
+    /** Excel V7 / 95 - workbook */
+    EXCEL_V7_WORKBOOK    ("{00020841-0000-0000-C000-000000000046}", null, null),
+    /** Excel V7 / 95 - chart */
+    EXCEL_V7_CHART       ("{00020811-0000-0000-C000-000000000046}", null, null),
+    /** Excel V8 / 97 - document */
+    EXCEL_V8             ("{00020820-0000-0000-C000-000000000046}", ".xls", "application/vnd.ms-excel"),
+    /** Excel V8 / 97 - chart */
+    EXCEL_V8_CHART       ("{00020821-0000-0000-C000-000000000046}", null, null),
+    /** Excel V11 / 2003 - document */
+    EXCEL_V11            ("{00020812-0000-0000-C000-000000000046}", ".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"),
+    /** Excel V12 / 2007 - document */
+    EXCEL_V12            ("{00020830-0000-0000-C000-000000000046}", ".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"),
+    /** Excel V12 / 2007 - macro */
+    EXCEL_V12_MACRO      ("{00020832-0000-0000-C000-000000000046}", ".xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12"),
+    /** Excel V12 / 2007 - xlsb document */
+    EXCEL_V12_XLSB       ("{00020833-0000-0000-C000-000000000046}", ".xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12"),
+    /* Excel V14 / 2010 - document */
+    EXCEL_V14            ("{00024500-0000-0000-C000-000000000046}", ".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"),
+    /* Excel V14 / 2010 - workbook */
+    EXCEL_V14_WORKBOOK   ("{000208D5-0000-0000-C000-000000000046}", null, null),
+    /* Excel V14 / 2010 - chart */
+    EXCEL_V14_CHART      ("{00024505-0014-0000-C000-000000000046}", null, null),
+    /** Excel V14 / 2010 - OpenDocument spreadsheet */
+    EXCEL_V14_ODS        ("{EABCECDB-CC1C-4A6F-B4E3-7F888A5ADFC8}", ".ods", "application/vnd.oasis.opendocument.spreadsheet"),
+    /** Word V7 / 95 - document */
+    WORD_V7              ("{00020900-0000-0000-C000-000000000046}", ".doc", "application/msword"),
+    /** Word V8 / 97 - document */
+    WORD_V8              ("{00020906-0000-0000-C000-000000000046}", ".doc", "application/msword"),
+    /** Word V12 / 2007 - document */
+    WORD_V12             ("{F4754C9B-64F5-4B40-8AF4-679732AC0607}", ".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"),
+    /** Word V12 / 2007 - macro */
+    WORD_V12_MACRO       ("{18A06B6B-2F3F-4E2B-A611-52BE631B2D22}", ".docm", "application/vnd.ms-word.document.macroEnabled.12"),
+    /** Powerpoint V7 / 95 - document */
+    POWERPOINT_V7        ("{EA7BAE70-FB3B-11CD-A903-00AA00510EA3}", ".ppt", "application/vnd.ms-powerpoint"),
+    /** Powerpoint V7 / 95 - slide */
+    POWERPOINT_V7_SLIDE  ("{EA7BAE71-FB3B-11CD-A903-00AA00510EA3}", null, null),
+    /** Powerpoint V8 / 97 - document */
+    POWERPOINT_V8        ("{64818D10-4F9B-11CF-86EA-00AA00B929E8}", ".ppt", "application/vnd.ms-powerpoint"),
+    /** Powerpoint V8 / 97 - template */
+    POWERPOINT_V8_TPL    ("{64818D11-4F9B-11CF-86EA-00AA00B929E8}", ".pot", "application/vnd.ms-powerpoint"),
+    /** Powerpoint V12 / 2007 - document */
+    POWERPOINT_V12       ("{CF4F55F4-8F87-4D47-80BB-5808164BB3F8}", ".pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"),
+    /** Powerpoint V12 / 2007 - macro */
+    POWERPOINT_V12_MACRO ("{DC020317-E6E2-4A62-B9FA-B3EFE16626F4}", ".pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12"),
+    /** Publisher V12 */
+    PUBLISHER_V12        ("{0002123D-0000-0000-C000-000000000046}", ".pub", "application/x-mspublisher"),
+    /** Visio 2000 (V6) / 2002 (V10) - drawing */
+    VISIO_V10            ("{00021A14-0000-0000-C000-000000000046}", ".vsd", "application/vnd.visio"),
+    /** Equation Editor 3.0 */
+    EQUATION_V3          ("{0002CE02-0000-0000-C000-000000000046}", null, null),
+    /** AcroExch.Document */
+    PDF                  ("{B801CA65-A1FC-11D0-85AD-444553540000}", ".pdf", "application/pdf"),
+    /** Plain Text Persistent Handler **/
+    TXT_ONLY             ("{5e941d80-bf96-11cd-b579-08002b30bfeb}", ".txt", "text/plain")
+    ;
+    
+    private static final Map<String,ClassIDPredefined> LOOKUP = new HashMap<>();
+
+    static {
+        for (ClassIDPredefined p : values()) {
+            LOOKUP.put(p.externalForm, p);
+        }
+    }
+    
+    private final String externalForm;
+    private ClassID classId;
+    private final String fileExtension;
+    private final String contentType;
+    
+    ClassIDPredefined(final String externalForm, final String fileExtension, final String contentType) {
+        this.externalForm = externalForm;
+        this.fileExtension = fileExtension;
+        this.contentType = contentType;
+    }
+    
+    public ClassID getClassID() {
+        synchronized (this) {
+            // TODO: init classId directly in the constructor when old statics have been removed from ClassID
+            if (classId == null) {
+                classId = new ClassID(externalForm);
+            }
+        }
+        return classId;
+    }
+
+    public String getFileExtension() {
+        return fileExtension;
+    }
+
+    public String getContentType() {
+        return contentType;
+    }
+    
+    public static ClassIDPredefined lookup(final String externalForm) {
+        return LOOKUP.get(externalForm);
+    }
+
+    public static ClassIDPredefined lookup(final ClassID classID) {
+        return (classID == null) ? null : LOOKUP.get(classID.toString());
+    }
+}

Propchange: poi/trunk/src/java/org/apache/poi/hpsf/ClassIDPredefined.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: poi/trunk/src/ooxml/java/org/apache/poi/ss/extractor/EmbeddedExtractor.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/ss/extractor/EmbeddedExtractor.java?rev=1819705&r1=1819704&r2=1819705&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/ss/extractor/EmbeddedExtractor.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/ss/extractor/EmbeddedExtractor.java Sun Dec 31 00:13:38 2017
@@ -29,6 +29,7 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.poi.hpsf.ClassID;
+import org.apache.poi.hpsf.ClassIDPredefined;
 import org.apache.poi.poifs.filesystem.DirectoryNode;
 import org.apache.poi.poifs.filesystem.DocumentInputStream;
 import org.apache.poi.poifs.filesystem.Entry;
@@ -184,7 +185,7 @@ public class EmbeddedExtractor implement
         @Override
         public boolean canExtract(DirectoryNode dn) {
             ClassID clsId = dn.getStorageClsid();
-            return ClassID.OLE10_PACKAGE.equals(clsId);
+            return ClassIDPredefined.lookup(clsId) == ClassIDPredefined.OLE_V1_PACKAGE;
         }
 
         @Override
@@ -271,33 +272,19 @@ public class EmbeddedExtractor implement
         @Override
         public EmbeddedData extract(DirectoryNode dn) throws IOException {
 
-            ClassID clsId = dn.getStorageClsid();
+            ClassIDPredefined clsId = ClassIDPredefined.lookup(dn.getStorageClsid());
 
-            String contentType, ext;
-            if (ClassID.WORD2007.equals(clsId)) {
-                ext = ".docx";
-                contentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
-            } else if (ClassID.WORD2007_MACRO.equals(clsId)) {
-                ext = ".docm";
-                contentType = "application/vnd.ms-word.document.macroEnabled.12";
-            } else if (ClassID.EXCEL2007.equals(clsId) || ClassID.EXCEL2003.equals(clsId) || ClassID.EXCEL2010.equals(clsId)) {
-                ext = ".xlsx";
-                contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
-            } else if (ClassID.EXCEL2007_MACRO.equals(clsId)) {
-                ext = ".xlsm";
-                contentType = "application/vnd.ms-excel.sheet.macroEnabled.12";
-            } else if (ClassID.EXCEL2007_XLSB.equals(clsId)) {
-                ext = ".xlsb";
-                contentType = "application/vnd.ms-excel.sheet.binary.macroEnabled.12";
-            } else if (ClassID.POWERPOINT2007.equals(clsId)) {
-                ext = ".pptx";
-                contentType = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
-            } else if (ClassID.POWERPOINT2007_MACRO.equals(clsId)) {
-                ext = ".ppsm";
-                contentType = "application/vnd.ms-powerpoint.slideshow.macroEnabled.12";
-            } else {
-                ext = ".zip";
+            String contentType = null;
+            String ext = null;
+            
+            if (clsId != null) {
+                contentType = clsId.getContentType();
+                ext = clsId.getFileExtension();
+            }
+            
+            if (contentType == null || ext == null) {
                 contentType = "application/zip";
+                ext = ".zip";
             }
 
             DocumentInputStream dis = dn.createDocumentInputStream("package");
@@ -315,16 +302,16 @@ public class EmbeddedExtractor implement
         }
         
         protected boolean canExtractExcel(DirectoryNode dn) {
-            ClassID clsId = dn.getStorageClsid();
-            return (ClassID.EXCEL95.equals(clsId)
-                || ClassID.EXCEL97.equals(clsId)
+            ClassIDPredefined clsId = ClassIDPredefined.lookup(dn.getStorageClsid());
+            return (ClassIDPredefined.EXCEL_V7 == clsId
+                || ClassIDPredefined.EXCEL_V8 == clsId
                 || dn.hasEntry("Workbook") /*...*/);
         }
 
         protected boolean canExtractWord(DirectoryNode dn) {
-            ClassID clsId = dn.getStorageClsid();
-            return (ClassID.WORD95.equals(clsId)
-                || ClassID.WORD97.equals(clsId)
+            ClassIDPredefined clsId = ClassIDPredefined.lookup(dn.getStorageClsid());
+            return (ClassIDPredefined.WORD_V7 == clsId
+                || ClassIDPredefined.WORD_V8 == clsId
                 || dn.hasEntry("WordDocument"));
         }
         

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java?rev=1819705&r1=1819704&r2=1819705&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java Sun Dec 31 00:13:38 2017
@@ -47,7 +47,7 @@ import org.apache.poi.POIXMLDocument;
 import org.apache.poi.POIXMLDocumentPart;
 import org.apache.poi.POIXMLException;
 import org.apache.poi.POIXMLProperties;
-import org.apache.poi.hpsf.ClassID;
+import org.apache.poi.hpsf.ClassIDPredefined;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
 import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
 import org.apache.poi.openxml4j.opc.OPCPackage;
@@ -2373,7 +2373,7 @@ public class XSSFWorkbook extends POIXML
             try (POIFSFileSystem poifs = new POIFSFileSystem()) {
                 DirectoryNode root = poifs.getRoot();
                 root.createDocument(Ole10Native.OLE10_NATIVE, new ByteArrayInputStream(bos.toByteArray()));
-                root.setStorageClsid(ClassID.OLE10_PACKAGE);
+                root.setStorageClsid(ClassIDPredefined.OLE_V1_PACKAGE.getClassID());
 
                 // TODO: generate CombObj stream
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org