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
This commit is contained in:
Yegor Kozlov 2010-01-24 13:11:46 +00:00
parent 3e5d8b9cad
commit 76a0ce511b
2 changed files with 9 additions and 14 deletions

View File

@ -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>

View File

@ -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);
}
}
}