diff --git a/.gitignore b/.gitignore
index d075be7..695c7ef 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
+
+/__pycache__/
/bin/
/Operator/
/DrawerProperties/
diff --git a/.project b/.project
index d5321e7..993f532 100644
--- a/.project
+++ b/.project
@@ -21,4 +21,15 @@
org.eclipse.jdt.core.javanature
net.sf.eclipsecs.core.CheckstyleNature
+
+
+ 1646149232194
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
diff --git a/src/org/atriasoft/exml/builder/BuilderIntrospection.java b/src/org/atriasoft/exml/builder/BuilderIntrospection.java
index ca4d03d..df02157 100644
--- a/src/org/atriasoft/exml/builder/BuilderIntrospection.java
+++ b/src/org/atriasoft/exml/builder/BuilderIntrospection.java
@@ -22,10 +22,22 @@ public class BuilderIntrospection implements Builder {
this.cacheModel.findOrCreate(model, null, classType);
}
+ @Override
+ public void endElement(final Object element) throws ExmlBuilderException {
+ if (element == null) {
+ return;
+ }
+ final IntrospectionObject introspectionObject = (IntrospectionObject) element;
+ if (introspectionObject.getModelIntrospection() == null) {
+ // property on nothing ???
+ return;
+ }
+ introspectionObject.generateTheObject();
+
+ }
@Override
- public void newComment(final Object element, final String comment) throws ExmlException {
- }
+ public void newComment(final Object element, final String comment) throws ExmlException {}
@Override
public Object newDeclaration(final Object parent, final String text) throws ExmlException {
@@ -38,7 +50,7 @@ public class BuilderIntrospection implements Builder {
if (parent == null) {
return null;
}
- Log.warning("new element on NodeName=" + nodeName);
+ Log.verbose("new element on NodeName=" + nodeName);
final IntrospectionObject introspectionObject = (IntrospectionObject) parent;
IntrospectionModel model = introspectionObject.getModelIntrospection();
Class> typeClass = null;
@@ -86,7 +98,7 @@ public class BuilderIntrospection implements Builder {
inferData = this.cacheModel.findOrCreate(ModelType.LIST, listTreeName, subTypeClass);
}
// Create the data when object is ended created...
- return new IntrospectionObject(inferData);
+ return new IntrospectionObject(inferData);
}
Log.verbose("Create new class: '" + typeClass.getCanonicalName() + "' for node '" + nodeName + "'");
final IntrospectionModel inferData = this.cacheModel.findOrCreate(ModelType.NORMAL, listTreeName, typeClass);
@@ -96,7 +108,34 @@ public class BuilderIntrospection implements Builder {
}
return null;
}
-
+
+ @Override
+ public void newElementFinished(final Object parent, final String tmpName, final Object element) throws ExmlException {
+ Log.debug("new element fionished : ==> " + tmpName);
+ if (parent == null || element == null) {
+ return;
+ }
+ final IntrospectionObject introspectionElementObject = (IntrospectionObject) element;
+ if (introspectionElementObject.getModelIntrospection() == null) {
+ // property on nothing ???
+ return;
+ }
+ final IntrospectionObject introspectionParentObject = (IntrospectionObject) parent;
+ if (introspectionParentObject.getModelIntrospection() == null) {
+ if (tmpName.equals(this.rootNodeName)) {
+ // this is the root node ...
+ Object tmpp = introspectionParentObject.getData();
+ if (tmpp instanceof List) {
+ @SuppressWarnings("unchecked")
+ List