|
From: <th...@us...> - 2003-12-08 09:55:04
|
Update of /cvsroot/jaxme/JaxMe/src/generator/de/ispsoft/jaxme/generator/parselets
In directory sc8-pr-cvs1:/tmp/cvs-serv1748/src/generator/de/ispsoft/jaxme/generator/parselets
Modified Files:
ParseletWriter.java
Log Message:
inserted from a patched jaxme project (joe you know what it is)
Index: ParseletWriter.java
===================================================================
RCS file: /cvsroot/jaxme/JaxMe/src/generator/de/ispsoft/jaxme/generator/parselets/ParseletWriter.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- ParseletWriter.java 25 Apr 2003 19:57:50 -0000 1.7
+++ ParseletWriter.java 8 Dec 2003 09:54:57 -0000 1.8
@@ -1,5 +1,9 @@
package de.ispsoft.jaxme.generator.parselets;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
import org.apache.log4j.Category;
import de.ispsoft.jaxme.generator.SchemaAttribute;
import de.ispsoft.jaxme.generator.SchemaComplexElement;
@@ -214,7 +218,49 @@
JavaComment jc = new JavaComment();
jc.addLine("A Parselet for class " + pElement.getQClassName() + ".");
-
+ // inserted from patched (tcnew-)jaxme
+ Iterator iter = pElement.getAttributes();
+ Set parseletNames = new HashSet();
+ while(iter.hasNext()) {
+ Object o = iter.next();
+ SchemaAttribute attr = (SchemaAttribute)o;
+ ParseletDecorator pd2 = (ParseletDecorator) attr.getElementDecorator(pdf);
+
+ if (pd2 == null) {
+ continue;
+ }
+ String newParselet = pd2.getNewParseletForParse();
+ String parseletClass = pd2.getParseletPackageName()+"."+pd2.getParseletClassName();
+ if( !parseletNames.contains(parseletClass) ) {
+ parseletNames.add(parseletClass);
+ JavaField jf = new JavaField("m_"+pd2.getParseletClassName(),
+ parseletClass, "private");
+ jf.setValue(newParselet);
+ jf.setStatic(false);
+ jf.setFinal(false);
+ js.addField(jf);
+ }
+ }
+ for (iter = pElement.getChilds(); iter.hasNext(); ) {
+ SchemaElement child = (SchemaElement) iter.next();
+ ParseletDecorator pd3 = (ParseletDecorator) child.getElementDecorator(pdf);
+ if (pd3 == null) {
+ continue;
+ }
+ String newParselet = pd3.getNewParseletForParse();
+ String parseletClass = pd3.getParseletPackageName()+"."+
+ pd3.getParseletClassName();
+ if(!parseletNames.contains(parseletClass)) {
+ parseletNames.add(parseletClass);
+ JavaField jf = new JavaField("m_"+pd3.getParseletClassName(),
+ parseletClass, "private");
+ jf.setValue(newParselet);
+ jf.setStatic(false);
+ jf.setFinal(false);
+ js.addField(jf);
+ }
+ }
+ // end of insert
JavaConstructor jcon = getDefaultConstructor(js, pElement, pd);
if (jcon != null) {
js.addConstructor(jcon);
|