aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYegor Kozlov <yegor@apache.org>2010-01-24 13:11:46 +0000
committerYegor Kozlov <yegor@apache.org>2010-01-24 13:11:46 +0000
commitac1490264cc87dd67fb71fb21e14f2945d645882 (patch)
treef53a8f7554d476eddef2a72494f05e79f016062e
parent6db9c4f0e220a4958c239ef9c2c9e67561651a8f (diff)
downloadpoi-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.xml1
-rwxr-xr-xsrc/ooxml/java/org/apache/poi/util/OOXMLLite.java22
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);
}
}
}