diff options
author | Yegor Kozlov <yegor@apache.org> | 2010-01-24 13:11:46 +0000 |
---|---|---|
committer | Yegor Kozlov <yegor@apache.org> | 2010-01-24 13:11:46 +0000 |
commit | ac1490264cc87dd67fb71fb21e14f2945d645882 (patch) | |
tree | f53a8f7554d476eddef2a72494f05e79f016062e | |
parent | 6db9c4f0e220a4958c239ef9c2c9e67561651a8f (diff) | |
download | poi-ac1490264cc87dd67fb71fb21e14f2945d645882.tar.gz poi-ac1490264cc87dd67fb71fb21e14f2945d645882.zip |
always copy all declared inner classes and interfaces when generating poi-ooxml-schemas, see Bugzilla 48572
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@902563 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | src/documentation/content/xdocs/status.xml | 1 | ||||
-rwxr-xr-x | src/ooxml/java/org/apache/poi/util/OOXMLLite.java | 22 |
2 files changed, 9 insertions, 14 deletions
diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml index a0462404a2..cea8287434 100644 --- a/src/documentation/content/xdocs/status.xml +++ b/src/documentation/content/xdocs/status.xml @@ -34,6 +34,7 @@ <changes> <release version="3.7-SNAPSHOT" date="2010-??-??"> + <action dev="POI-DEVELOPERS" type="fix">48572 - always copy all declared inner classes and interfaces when generating poi-ooxml-schemas</action> <action dev="POI-DEVELOPERS" type="add">Low Level record support for the ExtRst (phonetic text) part of Unicode Strings. No usermodel access to it as yet though.</action> <action dev="POI-DEVELOPERS" type="fix">record.UnicodeString has moved to record.common.UnicodeString, to live with the other record-part classes, as it isn't a full record.</action> <action dev="POI-DEVELOPERS" type="add">Avoid creating temporary files when opening OPC packages from input stream</action> diff --git a/src/ooxml/java/org/apache/poi/util/OOXMLLite.java b/src/ooxml/java/org/apache/poi/util/OOXMLLite.java index e533373ba3..b0e7b26dc4 100755 --- a/src/ooxml/java/org/apache/poi/util/OOXMLLite.java +++ b/src/ooxml/java/org/apache/poi/util/OOXMLLite.java @@ -109,23 +109,17 @@ public final class OOXMLLite { String className = cls.getName(); String classRef = className.replace('.', '/') + ".class"; File destFile = new File(_destDest, classRef); - //System.out.println(classRef + " --> " + destFile); copyFile(cls.getResourceAsStream('/' + classRef), destFile); if(cls.isInterface()){ - //always copy Factory that accompanies every ooxml schema object - String factoryClass = className + "$Factory"; - if(!classes.containsKey(factoryClass)){ - try { - Class fc = Class.forName(factoryClass); - className = fc.getName(); - classRef = className.replace('.', '/') + ".class"; - destFile = new File(_destDest, classRef); - //System.out.println(classRef + " --> " + destFile); - copyFile(fc.getResourceAsStream('/' + classRef), destFile); - } catch(ClassNotFoundException e) { - e.printStackTrace(); - } + /** + * Copy classes and interfaces declared as members of this class + */ + for(Class fc : cls.getDeclaredClasses()){ + className = fc.getName(); + classRef = className.replace('.', '/') + ".class"; + destFile = new File(_destDest, classRef); + copyFile(fc.getResourceAsStream('/' + classRef), destFile); } } } |