Started with moving write to phases.
Changed eld attribute name to id, Changed runBeanFill to runBeanValue.
This commit is contained in:
parent
226c1f0425
commit
d271edb1ee
|
@ -29,8 +29,10 @@ import org.x4o.xml.io.DefaultX4OReader;
|
||||||
import org.x4o.xml.io.DefaultX4OSchemaWriter;
|
import org.x4o.xml.io.DefaultX4OSchemaWriter;
|
||||||
import org.x4o.xml.io.DefaultX4OWriter;
|
import org.x4o.xml.io.DefaultX4OWriter;
|
||||||
import org.x4o.xml.io.X4OReader;
|
import org.x4o.xml.io.X4OReader;
|
||||||
|
import org.x4o.xml.io.X4OReaderContext;
|
||||||
import org.x4o.xml.io.X4OSchemaWriter;
|
import org.x4o.xml.io.X4OSchemaWriter;
|
||||||
import org.x4o.xml.io.X4OWriter;
|
import org.x4o.xml.io.X4OWriter;
|
||||||
|
import org.x4o.xml.io.X4OWriterContext;
|
||||||
|
|
||||||
import org.x4o.xml.lang.X4OLanguageConfiguration;
|
import org.x4o.xml.lang.X4OLanguageConfiguration;
|
||||||
import org.x4o.xml.lang.X4OLanguageContext;
|
import org.x4o.xml.lang.X4OLanguageContext;
|
||||||
|
@ -66,6 +68,7 @@ public abstract class X4ODriver<T> {
|
||||||
abstract public String[] getLanguageVersions();
|
abstract public String[] getLanguageVersions();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected X4OLanguage buildLanguage(String version) {
|
protected X4OLanguage buildLanguage(String version) {
|
||||||
return X4ODriverManager.getDefaultBuildLanguage(this, version);
|
return X4ODriverManager.getDefaultBuildLanguage(this, version);
|
||||||
}
|
}
|
||||||
|
@ -79,6 +82,7 @@ public abstract class X4ODriver<T> {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public X4OSchemaWriter createSchemaWriter() {
|
public X4OSchemaWriter createSchemaWriter() {
|
||||||
return createSchemaWriter(getLanguageVersionDefault());
|
return createSchemaWriter(getLanguageVersionDefault());
|
||||||
}
|
}
|
||||||
|
@ -87,22 +91,42 @@ public abstract class X4ODriver<T> {
|
||||||
return new DefaultX4OSchemaWriter(createLanguageContext(version));
|
return new DefaultX4OSchemaWriter(createLanguageContext(version));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public X4OReader<T> createReader() {
|
public X4OReader<T> createReader() {
|
||||||
return createReader(getLanguageVersionDefault());
|
return createReaderContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
public X4OReader<T> createReader(String version) {
|
public X4OReader<T> createReader(String version) {
|
||||||
return new DefaultX4OReader<T>(createLanguageContext(version));
|
return createReaderContext(version);
|
||||||
}
|
}
|
||||||
|
|
||||||
public X4OWriter<T> createWriter() {
|
public X4OWriter<T> createWriter() {
|
||||||
return createWriter(getLanguageVersionDefault());
|
return createWriterContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
public X4OWriter<T> createWriter(String version) {
|
public X4OWriter<T> createWriter(String version) {
|
||||||
|
return createWriterContext(version);
|
||||||
|
}
|
||||||
|
|
||||||
|
public X4OReaderContext<T> createReaderContext() {
|
||||||
|
return createReaderContext(getLanguageVersionDefault());
|
||||||
|
}
|
||||||
|
|
||||||
|
public X4OReaderContext<T> createReaderContext(String version) {
|
||||||
|
return new DefaultX4OReader<T>(createLanguageContext(version));
|
||||||
|
}
|
||||||
|
|
||||||
|
public X4OWriterContext<T> createWriterContext() {
|
||||||
|
return createWriterContext(getLanguageVersionDefault());
|
||||||
|
}
|
||||||
|
|
||||||
|
public X4OWriterContext<T> createWriterContext(String version) {
|
||||||
return new DefaultX4OWriter<T>(createLanguageContext(version));
|
return new DefaultX4OWriter<T>(createLanguageContext(version));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public String getLanguageVersionDefault() {
|
public String getLanguageVersionDefault() {
|
||||||
return X4ODriverManager.getDefaultLanguageVersion(getLanguageVersions());
|
return X4ODriverManager.getDefaultLanguageVersion(getLanguageVersions());
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,6 +43,7 @@ import org.x4o.xml.lang.X4OLanguageConfiguration;
|
||||||
import org.x4o.xml.lang.phase.DefaultX4OPhaseManager;
|
import org.x4o.xml.lang.phase.DefaultX4OPhaseManager;
|
||||||
import org.x4o.xml.lang.phase.X4OPhaseLanguageInit;
|
import org.x4o.xml.lang.phase.X4OPhaseLanguageInit;
|
||||||
import org.x4o.xml.lang.phase.X4OPhaseLanguageRead;
|
import org.x4o.xml.lang.phase.X4OPhaseLanguageRead;
|
||||||
|
import org.x4o.xml.lang.phase.X4OPhaseLanguageWrite;
|
||||||
import org.x4o.xml.lang.phase.X4OPhaseManager;
|
import org.x4o.xml.lang.phase.X4OPhaseManager;
|
||||||
import org.xml.sax.Attributes;
|
import org.xml.sax.Attributes;
|
||||||
import org.xml.sax.InputSource;
|
import org.xml.sax.InputSource;
|
||||||
|
@ -92,7 +93,7 @@ public final class X4ODriverManager {
|
||||||
DefaultX4OPhaseManager manager = new DefaultX4OPhaseManager();
|
DefaultX4OPhaseManager manager = new DefaultX4OPhaseManager();
|
||||||
new X4OPhaseLanguageInit().createPhases(manager);
|
new X4OPhaseLanguageInit().createPhases(manager);
|
||||||
new X4OPhaseLanguageRead().createPhases(manager);
|
new X4OPhaseLanguageRead().createPhases(manager);
|
||||||
//new X4OPhaseLanguageWrite().createPhases(manager);
|
new X4OPhaseLanguageWrite().createPhases(manager);
|
||||||
return manager;
|
return manager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides default java text converters.
|
* Provides implementations of object to text converters.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The X4O EL Support classes.
|
* The Expression Language classes.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
|
|
@ -254,8 +254,7 @@ public class EldModuleLoaderCore implements X4OLanguageModuleLoader {
|
||||||
private ElementClassAttribute createElementClassAttribute(X4OLanguage language,String name,boolean required,ObjectConverter converter) throws X4OLanguageModuleLoaderException {
|
private ElementClassAttribute createElementClassAttribute(X4OLanguage language,String name,boolean required,ObjectConverter converter) throws X4OLanguageModuleLoaderException {
|
||||||
try {
|
try {
|
||||||
ElementClassAttribute result = (ElementClassAttribute)X4OLanguageClassLoader.newInstance(language.getLanguageConfiguration().getDefaultElementClassAttribute());
|
ElementClassAttribute result = (ElementClassAttribute)X4OLanguageClassLoader.newInstance(language.getLanguageConfiguration().getDefaultElementClassAttribute());
|
||||||
result.setId(name); // ??
|
result.setId(name);
|
||||||
result.setName(name);
|
|
||||||
if (required) {
|
if (required) {
|
||||||
result.setRequired(required);
|
result.setRequired(required);
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The X4O ELD Language x4o classes.
|
* The Element Language Definition language elements.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The X4O Element Language Definition parser.
|
* The Element Language Definition drivers.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
|
|
@ -282,9 +282,9 @@ public class EldXsdXmlWriter {
|
||||||
|
|
||||||
List<String> attrNames = new ArrayList<String>(30);
|
List<String> attrNames = new ArrayList<String>(30);
|
||||||
for (ElementClassAttribute eca:ec.getElementClassAttributes()) {
|
for (ElementClassAttribute eca:ec.getElementClassAttributes()) {
|
||||||
attrNames.add(eca.getName());
|
attrNames.add(eca.getId());
|
||||||
atts = new AttributesImpl();
|
atts = new AttributesImpl();
|
||||||
atts.addAttribute ("", "name", "", "", eca.getName());
|
atts.addAttribute ("", "name", "", "", eca.getId());
|
||||||
atts.addAttribute ("", "type", "", "", "string");
|
atts.addAttribute ("", "type", "", "", "string");
|
||||||
if (eca.getRequired()!=null && eca.getRequired()) {
|
if (eca.getRequired()!=null && eca.getRequired()) {
|
||||||
atts.addAttribute ("", "use", "", "", "required");
|
atts.addAttribute ("", "use", "", "", "required");
|
||||||
|
|
|
@ -44,7 +44,8 @@ public abstract class AbstractElementClassAttribute extends AbstractElementMetaB
|
||||||
private Boolean runResolveEL = null;
|
private Boolean runResolveEL = null;
|
||||||
//private Boolean runInterfaces = null;
|
//private Boolean runInterfaces = null;
|
||||||
private Boolean runConverters = null;
|
private Boolean runConverters = null;
|
||||||
private Boolean runBeanFill = null;
|
private Boolean runBeanValue = null;
|
||||||
|
private Integer writeOrder = null;
|
||||||
|
|
||||||
public AbstractElementClassAttribute() {
|
public AbstractElementClassAttribute() {
|
||||||
attributeAliases = new ArrayList<String>(3);
|
attributeAliases = new ArrayList<String>(3);
|
||||||
|
@ -156,16 +157,30 @@ public abstract class AbstractElementClassAttribute extends AbstractElementMetaB
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the runBeanFill
|
* @return the runBeanValue
|
||||||
*/
|
*/
|
||||||
public Boolean getRunBeanFill() {
|
public Boolean getRunBeanValue() {
|
||||||
return runBeanFill;
|
return runBeanValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param runBeanFill the runBeanFill to set
|
* @param runBeanValue the runBeanValue to set
|
||||||
*/
|
*/
|
||||||
public void setRunBeanFill(Boolean runBeanFill) {
|
public void setRunBeanValue(Boolean runBeanValue) {
|
||||||
this.runBeanFill = runBeanFill;
|
this.runBeanValue = runBeanValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the writeOrder
|
||||||
|
*/
|
||||||
|
public Integer getWriteOrder() {
|
||||||
|
return writeOrder;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param writeOrder the writeOrder to set
|
||||||
|
*/
|
||||||
|
public void setWriteOrder(Integer writeOrder) {
|
||||||
|
this.writeOrder = writeOrder;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ public abstract class AbstractElementClassBase extends AbstractElementMetaBase i
|
||||||
* @param elementClassAttribute The ElementClassAttribute to add.
|
* @param elementClassAttribute The ElementClassAttribute to add.
|
||||||
*/
|
*/
|
||||||
public void addElementClassAttribute(ElementClassAttribute elementClassAttribute) {
|
public void addElementClassAttribute(ElementClassAttribute elementClassAttribute) {
|
||||||
elementClassAttributes.put(elementClassAttribute.getName(),elementClassAttribute);
|
elementClassAttributes.put(elementClassAttribute.getId(),elementClassAttribute);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -86,7 +86,7 @@ public class DefaultElementAttributeValueParser implements ElementAttributeValue
|
||||||
for (ElementInterface ei:element.getLanguageContext().getLanguage().findElementInterfaces(element.getElementObject())) {
|
for (ElementInterface ei:element.getLanguageContext().getLanguage().findElementInterfaces(element.getElementObject())) {
|
||||||
logger.finer("Found interface match executing converter.");
|
logger.finer("Found interface match executing converter.");
|
||||||
for (ElementClassAttribute attrClass:ei.getElementClassAttributes()) {
|
for (ElementClassAttribute attrClass:ei.getElementClassAttributes()) {
|
||||||
if (name.equals(attrClass.getName())==false) {
|
if (name.equals(attrClass.getId())==false) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (attrClass.getObjectConverter()==null) {
|
if (attrClass.getObjectConverter()==null) {
|
||||||
|
|
|
@ -36,18 +36,6 @@ import org.x4o.xml.conv.ObjectConverter;
|
||||||
*/
|
*/
|
||||||
public interface ElementClassAttribute extends ElementMetaBase {
|
public interface ElementClassAttribute extends ElementMetaBase {
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the attribute name of the ElementClass.
|
|
||||||
* @return The name.
|
|
||||||
*/
|
|
||||||
String getName();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the attribute name of the ElementClass.
|
|
||||||
* @param name The name of the attribute.
|
|
||||||
*/
|
|
||||||
void setName(String name);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the ObjectConverter.
|
* Gets the ObjectConverter.
|
||||||
* @return The ObjectConverter.
|
* @return The ObjectConverter.
|
||||||
|
@ -123,12 +111,22 @@ public interface ElementClassAttribute extends ElementMetaBase {
|
||||||
void setRunConverters(Boolean runConverters);
|
void setRunConverters(Boolean runConverters);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the runBeanFill.
|
* @return the runBeanValue.
|
||||||
*/
|
*/
|
||||||
Boolean getRunBeanFill();
|
Boolean getRunBeanValue();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param runBeanFill the runBeanFill to set.
|
* @param runBeanValue the runBeanValue to set.
|
||||||
*/
|
*/
|
||||||
void setRunBeanFill(Boolean runBeanFill);
|
void setRunBeanValue(Boolean runBeanValue);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the writeOrder
|
||||||
|
*/
|
||||||
|
Integer getWriteOrder();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param writeOrder the writeOrder to set
|
||||||
|
*/
|
||||||
|
void setWriteOrder(Integer writeOrder);
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The X4O XML Element interfaces.
|
* The XML Element definitions.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
|
|
@ -36,16 +36,16 @@ import java.util.Map;
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
import javax.xml.parsers.ParserConfigurationException;
|
||||||
|
|
||||||
import org.x4o.xml.element.Element;
|
import org.x4o.xml.element.Element;
|
||||||
import org.x4o.xml.element.ElementBindingHandler;
|
|
||||||
import org.x4o.xml.element.ElementBindingHandlerException;
|
|
||||||
import org.x4o.xml.element.ElementClass;
|
import org.x4o.xml.element.ElementClass;
|
||||||
import org.x4o.xml.element.ElementClassAttribute;
|
import org.x4o.xml.element.ElementClassAttribute;
|
||||||
|
import org.x4o.xml.element.ElementInterface;
|
||||||
import org.x4o.xml.element.ElementNamespaceContext;
|
import org.x4o.xml.element.ElementNamespaceContext;
|
||||||
import org.x4o.xml.element.ElementNamespaceInstanceProviderException;
|
|
||||||
import org.x4o.xml.element.ElementObjectPropertyValueException;
|
import org.x4o.xml.element.ElementObjectPropertyValueException;
|
||||||
import org.x4o.xml.io.sax.XMLWriter;
|
import org.x4o.xml.io.sax.XMLWriter;
|
||||||
import org.x4o.xml.lang.X4OLanguageContext;
|
import org.x4o.xml.lang.X4OLanguageContext;
|
||||||
import org.x4o.xml.lang.X4OLanguageModule;
|
import org.x4o.xml.lang.X4OLanguageModule;
|
||||||
|
import org.x4o.xml.lang.phase.X4OPhaseException;
|
||||||
|
import org.x4o.xml.lang.phase.X4OPhaseType;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
import org.xml.sax.helpers.AttributesImpl;
|
import org.xml.sax.helpers.AttributesImpl;
|
||||||
|
|
||||||
|
@ -57,24 +57,20 @@ import org.xml.sax.helpers.AttributesImpl;
|
||||||
*/
|
*/
|
||||||
public class DefaultX4OWriter<T> extends AbstractX4OWriter<T> {
|
public class DefaultX4OWriter<T> extends AbstractX4OWriter<T> {
|
||||||
|
|
||||||
public DefaultX4OWriter(X4OLanguageContext elementLanguage) {
|
public DefaultX4OWriter(X4OLanguageContext languageContext) {
|
||||||
super(elementLanguage);
|
super(languageContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void writeContext(X4OLanguageContext context,OutputStream out) throws ParserConfigurationException,
|
public void writeContext(X4OLanguageContext languageContext,OutputStream out) throws ParserConfigurationException,
|
||||||
FileNotFoundException, SecurityException, NullPointerException,
|
FileNotFoundException, SecurityException, NullPointerException,
|
||||||
SAXException, IOException {
|
SAXException, IOException {
|
||||||
|
|
||||||
Element root = getLanguageContext().getRootElement();
|
|
||||||
if (root.getElementClass()==null) {
|
|
||||||
try {
|
try {
|
||||||
root = fillElementTree(root.getElementObject());
|
languageContext.getLanguage().getPhaseManager().runPhases(languageContext, X4OPhaseType.XML_WRITE);
|
||||||
} catch (ElementNamespaceInstanceProviderException e) {
|
} catch (X4OPhaseException e1) {
|
||||||
throw new SAXException(e);
|
throw new SAXException(e1);
|
||||||
} catch (ElementBindingHandlerException e) {
|
|
||||||
throw new SAXException(e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Element root = languageContext.getRootElement();
|
||||||
|
|
||||||
XMLWriter writer = new XMLWriter(out);
|
XMLWriter writer = new XMLWriter(out);
|
||||||
writer.startDocument();
|
writer.startDocument();
|
||||||
|
@ -120,9 +116,6 @@ public class DefaultX4OWriter<T> extends AbstractX4OWriter<T> {
|
||||||
if (m.getName().startsWith("get")==false) {
|
if (m.getName().startsWith("get")==false) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(m.getName().startsWith("getLocationOnScreen")) {
|
|
||||||
continue; // TODO: rm this
|
|
||||||
}
|
|
||||||
String name = m.getName().substring(3,4).toLowerCase()+m.getName().substring(4);
|
String name = m.getName().substring(3,4).toLowerCase()+m.getName().substring(4);
|
||||||
result.add(name);
|
result.add(name);
|
||||||
|
|
||||||
|
@ -135,15 +128,37 @@ public class DefaultX4OWriter<T> extends AbstractX4OWriter<T> {
|
||||||
|
|
||||||
if (element.getElementClass().getAutoAttributes()!=null && element.getElementClass().getAutoAttributes()==false) {
|
if (element.getElementClass().getAutoAttributes()!=null && element.getElementClass().getAutoAttributes()==false) {
|
||||||
for (ElementClassAttribute eca:element.getElementClass().getElementClassAttributes()) {
|
for (ElementClassAttribute eca:element.getElementClass().getElementClassAttributes()) {
|
||||||
Object value = element.getLanguageContext().getElementObjectPropertyValue().getProperty(element.getElementObject(),eca.getName());
|
if (eca.getRunBeanValue()!=null && eca.getRunBeanValue()==false) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
Object value = element.getLanguageContext().getElementObjectPropertyValue().getProperty(element.getElementObject(),eca.getId());
|
||||||
if (value==null) {
|
if (value==null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
atts.addAttribute ("", eca.getName(), "", "", ""+value);
|
atts.addAttribute ("", eca.getId(), "", "", ""+value);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
for (String p:getProperties(element.getElementObject().getClass())) {
|
for (String p:getProperties(element.getElementObject().getClass())) {
|
||||||
|
|
||||||
|
ElementClassAttribute eca = element.getElementClass().getElementClassAttributeByName(p);
|
||||||
|
if (eca!=null && eca.getRunBeanValue()!=null && eca.getRunBeanValue()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
boolean writeValue = true;
|
||||||
|
for (ElementInterface ei:element.getLanguageContext().getLanguage().findElementInterfaces(element.getElementObject().getClass())) {
|
||||||
|
eca = ei.getElementClassAttributeByName(p);
|
||||||
|
if (eca!=null && eca.getRunBeanValue()!=null && eca.getRunBeanValue()==false) {
|
||||||
|
writeValue = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (writeValue==false) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: check attr see reader
|
||||||
Object value = element.getLanguageContext().getElementObjectPropertyValue().getProperty(element.getElementObject(),p);
|
Object value = element.getLanguageContext().getElementObjectPropertyValue().getProperty(element.getElementObject(),p);
|
||||||
if (value==null) {
|
if (value==null) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -164,7 +179,7 @@ public class DefaultX4OWriter<T> extends AbstractX4OWriter<T> {
|
||||||
}
|
}
|
||||||
|
|
||||||
private String findElementUri(Element e) {
|
private String findElementUri(Element e) {
|
||||||
for (X4OLanguageModule mod:e.getLanguageContext().getLanguage().getLanguageModules()) {
|
for (X4OLanguageModule mod:getLanguageContext().getLanguage().getLanguageModules()) {
|
||||||
for (ElementNamespaceContext c:mod.getElementNamespaceContexts()) {
|
for (ElementNamespaceContext c:mod.getElementNamespaceContexts()) {
|
||||||
ElementClass ec = c.getElementClass(e.getElementClass().getTag());
|
ElementClass ec = c.getElementClass(e.getElementClass().getTag());
|
||||||
if (ec!=null) {
|
if (ec!=null) {
|
||||||
|
@ -176,57 +191,11 @@ public class DefaultX4OWriter<T> extends AbstractX4OWriter<T> {
|
||||||
}
|
}
|
||||||
|
|
||||||
private String findNamespacePrefix(Element e,String uri) {
|
private String findNamespacePrefix(Element e,String uri) {
|
||||||
ElementNamespaceContext ns = e.getLanguageContext().getLanguage().findElementNamespaceContext(uri);
|
ElementNamespaceContext ns = getLanguageContext().getLanguage().findElementNamespaceContext(uri);
|
||||||
if (ns.getPrefixMapping()!=null) {
|
if (ns.getPrefixMapping()!=null) {
|
||||||
return ns.getPrefixMapping();
|
return ns.getPrefixMapping();
|
||||||
}
|
}
|
||||||
return ns.getId();
|
return ns.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Element fillElementTree(Object object) throws ElementNamespaceInstanceProviderException, ElementBindingHandlerException {
|
|
||||||
Element element = findRootElement(object.getClass());
|
|
||||||
element.setElementObject(object);
|
|
||||||
|
|
||||||
for (ElementBindingHandler bind:getLanguageContext().getLanguage().findElementBindingHandlers(object)) {
|
|
||||||
bind.createChilderen(element);
|
|
||||||
fillTree(element);
|
|
||||||
}
|
|
||||||
return element;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void fillTree(Element element) throws ElementNamespaceInstanceProviderException, ElementBindingHandlerException {
|
|
||||||
for (Element e:element.getChilderen()) {
|
|
||||||
Object object = e.getElementObject();
|
|
||||||
for (ElementBindingHandler bind:getLanguageContext().getLanguage().findElementBindingHandlers(object)) {
|
|
||||||
bind.createChilderen(e);
|
|
||||||
fillTree(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private Element findRootElement(Class<?> objectClass) throws ElementNamespaceInstanceProviderException {
|
|
||||||
// redo this mess, add nice find for root
|
|
||||||
for (X4OLanguageModule modContext:getLanguageContext().getLanguage().getLanguageModules()) {
|
|
||||||
for (ElementNamespaceContext nsContext:modContext.getElementNamespaceContexts()) {
|
|
||||||
if (nsContext.getLanguageRoot()!=null && nsContext.getLanguageRoot()) {
|
|
||||||
for (ElementClass ec:nsContext.getElementClasses()) {
|
|
||||||
if (ec.getObjectClass()!=null && ec.getObjectClass().equals(objectClass)) {
|
|
||||||
return nsContext.getElementNamespaceInstanceProvider().createElementInstance(getLanguageContext(), ec.getTag());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (X4OLanguageModule modContext:getLanguageContext().getLanguage().getLanguageModules()) {
|
|
||||||
for (ElementNamespaceContext nsContext:modContext.getElementNamespaceContexts()) {
|
|
||||||
for (ElementClass ec:nsContext.getElementClasses()) {
|
|
||||||
if (ec.getObjectClass()!=null && ec.getObjectClass().equals(objectClass)) {
|
|
||||||
return nsContext.getElementNamespaceInstanceProvider().createElementInstance(getLanguageContext(), ec.getTag());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
throw new IllegalArgumentException("Could not find ElementClass for: "+objectClass.getName());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -422,7 +422,7 @@ public class X4ODebugWriter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void debugElementLanguage(X4OLanguageContext elementLanguage) throws SAXException {
|
public void debugLanguageContext(X4OLanguageContext elementLanguage) throws SAXException {
|
||||||
AttributesImpl atts = new AttributesImpl();
|
AttributesImpl atts = new AttributesImpl();
|
||||||
//atts.addAttribute ("", key, "", "", value);
|
//atts.addAttribute ("", key, "", "", value);
|
||||||
atts.addAttribute ("", "language", "", "", elementLanguage.getLanguage().getLanguageName());
|
atts.addAttribute ("", "language", "", "", elementLanguage.getLanguage().getLanguageName());
|
||||||
|
@ -484,11 +484,11 @@ public class X4ODebugWriter {
|
||||||
private void debugElementClassAttributes(Collection<ElementClassAttribute> elementClassAttributes) throws SAXException {
|
private void debugElementClassAttributes(Collection<ElementClassAttribute> elementClassAttributes) throws SAXException {
|
||||||
for (ElementClassAttribute elementClassAttribute:elementClassAttributes) {
|
for (ElementClassAttribute elementClassAttribute:elementClassAttributes) {
|
||||||
AttributesImpl atts = new AttributesImpl();
|
AttributesImpl atts = new AttributesImpl();
|
||||||
atts.addAttribute ("", "attributeName", "", "", elementClassAttribute.getName());
|
atts.addAttribute ("", "id", "", "", elementClassAttribute.getId());
|
||||||
atts.addAttribute ("", "description", "", "", elementClassAttribute.getDescription());
|
atts.addAttribute ("", "description", "", "", elementClassAttribute.getDescription());
|
||||||
atts.addAttribute ("", "className", "", "", elementClassAttribute.getClass().getName());
|
atts.addAttribute ("", "className", "", "", elementClassAttribute.getClass().getName());
|
||||||
atts.addAttribute ("", "defaultValue", "", "", ""+elementClassAttribute.getDefaultValue());
|
atts.addAttribute ("", "defaultValue", "", "", ""+elementClassAttribute.getDefaultValue());
|
||||||
atts.addAttribute ("", "runBeanFill", "", "", ""+elementClassAttribute.getRunBeanFill());
|
atts.addAttribute ("", "runBeanValue", "", "", ""+elementClassAttribute.getRunBeanValue());
|
||||||
atts.addAttribute ("", "runConverters", "", "", ""+elementClassAttribute.getRunConverters());
|
atts.addAttribute ("", "runConverters", "", "", ""+elementClassAttribute.getRunConverters());
|
||||||
//atts.addAttribute ("", "runInterfaces", "", "", ""+elementClassAttribute.getRunInterfaces());
|
//atts.addAttribute ("", "runInterfaces", "", "", ""+elementClassAttribute.getRunInterfaces());
|
||||||
atts.addAttribute ("", "runResolveEL", "", "", ""+elementClassAttribute.getRunResolveEL());
|
atts.addAttribute ("", "runResolveEL", "", "", ""+elementClassAttribute.getRunResolveEL());
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sax interface based classes.
|
* The Sax based classes and interfaces.
|
||||||
*
|
*
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -23,12 +23,9 @@
|
||||||
|
|
||||||
package org.x4o.xml.lang;
|
package org.x4o.xml.lang;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides elements from tag.<br>
|
* X4OLanguageModuleLoader Loads all elements and other options
|
||||||
* And ElementClass from a tag.<br>
|
* into the X4OLanguageModule for the X4OLanguageLocal language.
|
||||||
*
|
|
||||||
*
|
*
|
||||||
* @author Willem Cazander
|
* @author Willem Cazander
|
||||||
* @version 1.0 Jul 8, 2006
|
* @version 1.0 Jul 8, 2006
|
||||||
|
|
|
@ -68,6 +68,16 @@ PHASE_ORDER = { *startupX4OPhase,
|
||||||
* = runOnce
|
* = runOnce
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
public X4OPhase getPhase(String phaseName) {
|
||||||
|
for (X4OPhase phase:x4oPhases) {
|
||||||
|
if (phase.getId().equals(phaseName)) {
|
||||||
|
return phase;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds an X4OPhaseHandler.
|
* Adds an X4OPhaseHandler.
|
||||||
* @param phase The X4OPhaseHandler to add.
|
* @param phase The X4OPhaseHandler to add.
|
||||||
|
@ -333,7 +343,7 @@ PHASE_ORDER = { *startupX4OPhase,
|
||||||
* @throws X4OPhaseException
|
* @throws X4OPhaseException
|
||||||
*/
|
*/
|
||||||
private void executePhaseTree(Element element,X4OPhase phase) throws X4OPhaseException {
|
private void executePhaseTree(Element element,X4OPhase phase) throws X4OPhaseException {
|
||||||
if (element.getElementClass().getSkipPhases().contains(phase.getId())==false) {
|
if (element.getElementClass()!=null && element.getElementClass().getSkipPhases().contains(phase.getId())==false) {
|
||||||
phase.runElementPhase(element);
|
phase.runElementPhase(element);
|
||||||
}
|
}
|
||||||
for (Element e:element.getChilderen()) {
|
for (Element e:element.getChilderen()) {
|
||||||
|
|
|
@ -74,7 +74,7 @@ public class X4OPhaseLanguageInit {
|
||||||
}
|
}
|
||||||
public void runElementPhase(Element element) throws X4OPhaseException {
|
public void runElementPhase(Element element) throws X4OPhaseException {
|
||||||
}
|
}
|
||||||
public void runPhase(X4OLanguageContext elementLanguage) throws X4OPhaseException {
|
public void runPhase(X4OLanguageContext languageContext) throws X4OPhaseException {
|
||||||
logger.finest("Run init start phase");
|
logger.finest("Run init start phase");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -98,14 +98,14 @@ public class X4OPhaseLanguageInit {
|
||||||
}
|
}
|
||||||
public void runElementPhase(Element element) throws X4OPhaseException {
|
public void runElementPhase(Element element) throws X4OPhaseException {
|
||||||
}
|
}
|
||||||
public void runPhase(X4OLanguageContext elementLanguage) throws X4OPhaseException {
|
public void runPhase(X4OLanguageContext languageContext) throws X4OPhaseException {
|
||||||
try {
|
try {
|
||||||
//debugPhaseMessage("Loading main language: "+elementLanguage.getLanguage(),this,elementLanguage);
|
//debugPhaseMessage("Loading main language: "+elementLanguage.getLanguage(),this,elementLanguage);
|
||||||
X4OLanguageLoader loader = (X4OLanguageLoader)X4OLanguageClassLoader.newInstance(elementLanguage.getLanguage().getLanguageConfiguration().getDefaultLanguageLoader());
|
X4OLanguageLoader loader = (X4OLanguageLoader)X4OLanguageClassLoader.newInstance(languageContext.getLanguage().getLanguageConfiguration().getDefaultLanguageLoader());
|
||||||
loader.loadLanguage((X4OLanguageLocal)elementLanguage.getLanguage(),elementLanguage.getLanguage().getLanguageName(),elementLanguage.getLanguage().getLanguageVersion());
|
loader.loadLanguage((X4OLanguageLocal)languageContext.getLanguage(),languageContext.getLanguage().getLanguageName(),languageContext.getLanguage().getLanguageVersion());
|
||||||
|
|
||||||
if (elementLanguage.hasX4ODebugWriter()) {
|
if (languageContext.hasX4ODebugWriter()) {
|
||||||
elementLanguage.getX4ODebugWriter().debugElementLanguageModules(elementLanguage);
|
languageContext.getX4ODebugWriter().debugElementLanguageModules(languageContext);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new X4OPhaseException(this,e);
|
throw new X4OPhaseException(this,e);
|
||||||
|
@ -131,22 +131,22 @@ public class X4OPhaseLanguageInit {
|
||||||
}
|
}
|
||||||
public void runElementPhase(Element element) throws X4OPhaseException {
|
public void runElementPhase(Element element) throws X4OPhaseException {
|
||||||
}
|
}
|
||||||
public void runPhase(X4OLanguageContext elementLanguage) throws X4OPhaseException {
|
public void runPhase(X4OLanguageContext languageContext) throws X4OPhaseException {
|
||||||
try {
|
try {
|
||||||
List<X4OLanguageModuleLoaderSibling> siblingLoaders = new ArrayList<X4OLanguageModuleLoaderSibling>(3);
|
List<X4OLanguageModuleLoaderSibling> siblingLoaders = new ArrayList<X4OLanguageModuleLoaderSibling>(3);
|
||||||
for (X4OLanguageModule module:elementLanguage.getLanguage().getLanguageModules()) {
|
for (X4OLanguageModule module:languageContext.getLanguage().getLanguageModules()) {
|
||||||
if (module.getLanguageModuleLoader() instanceof X4OLanguageModuleLoaderSibling) {
|
if (module.getLanguageModuleLoader() instanceof X4OLanguageModuleLoaderSibling) {
|
||||||
siblingLoaders.add((X4OLanguageModuleLoaderSibling)module.getLanguageModuleLoader());
|
siblingLoaders.add((X4OLanguageModuleLoaderSibling)module.getLanguageModuleLoader());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (siblingLoaders.isEmpty()==false) {
|
if (siblingLoaders.isEmpty()==false) {
|
||||||
X4OLanguageLoader loader = (X4OLanguageLoader)X4OLanguageClassLoader.newInstance(elementLanguage.getLanguage().getLanguageConfiguration().getDefaultLanguageLoader());
|
X4OLanguageLoader loader = (X4OLanguageLoader)X4OLanguageClassLoader.newInstance(languageContext.getLanguage().getLanguageConfiguration().getDefaultLanguageLoader());
|
||||||
for (X4OLanguageModuleLoaderSibling siblingLoader:siblingLoaders) {
|
for (X4OLanguageModuleLoaderSibling siblingLoader:siblingLoaders) {
|
||||||
//debugPhaseMessage("Loading sibling langauge loader: "+siblingLoader,this,elementLanguage);
|
//debugPhaseMessage("Loading sibling langauge loader: "+siblingLoader,this,elementLanguage);
|
||||||
siblingLoader.loadLanguageSibling((X4OLanguageLocal)elementLanguage.getLanguage(), loader);
|
siblingLoader.loadLanguageSibling((X4OLanguageLocal)languageContext.getLanguage(), loader);
|
||||||
}
|
}
|
||||||
if (elementLanguage.hasX4ODebugWriter()) {
|
if (languageContext.hasX4ODebugWriter()) {
|
||||||
elementLanguage.getX4ODebugWriter().debugElementLanguageModules(elementLanguage);
|
languageContext.getX4ODebugWriter().debugElementLanguageModules(languageContext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -173,7 +173,7 @@ public class X4OPhaseLanguageInit {
|
||||||
}
|
}
|
||||||
public void runElementPhase(Element element) throws X4OPhaseException {
|
public void runElementPhase(Element element) throws X4OPhaseException {
|
||||||
}
|
}
|
||||||
public void runPhase(X4OLanguageContext elementLanguage) throws X4OPhaseException {
|
public void runPhase(X4OLanguageContext languageContext) throws X4OPhaseException {
|
||||||
logger.finest("Run init end phase");
|
logger.finest("Run init end phase");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -82,11 +82,11 @@ public class X4OPhaseLanguageRead {
|
||||||
manager.addX4OPhase(new X4OPhaseReadXml());
|
manager.addX4OPhase(new X4OPhaseReadXml());
|
||||||
|
|
||||||
manager.addX4OPhase(new X4OPhaseReadConfigELBeans());
|
manager.addX4OPhase(new X4OPhaseReadConfigELBeans());
|
||||||
// if (elementLanguage.hasX4ODebugWriter()) {manager.addX4OPhaseHandler(factory.debugPhase());}
|
// if (languageContext.hasX4ODebugWriter()) {manager.addX4OPhaseHandler(factory.debugPhase());}
|
||||||
|
|
||||||
// meta start point
|
// meta start point
|
||||||
// manager.addX4OPhase(factory.startX4OPhase());
|
// manager.addX4OPhase(factory.startX4OPhase());
|
||||||
// if (elementLanguage.hasX4ODebugWriter()) {manager.addX4OPhaseHandler(factory.debugPhase());}
|
// if (languageContext.hasX4ODebugWriter()) {manager.addX4OPhaseHandler(factory.debugPhase());}
|
||||||
|
|
||||||
// config
|
// config
|
||||||
X4OPhaseReadRunConfigurator runConf = new X4OPhaseReadRunConfigurator();
|
X4OPhaseReadRunConfigurator runConf = new X4OPhaseReadRunConfigurator();
|
||||||
|
@ -97,27 +97,27 @@ public class X4OPhaseLanguageRead {
|
||||||
|
|
||||||
// run all attribute events
|
// run all attribute events
|
||||||
manager.addX4OPhase(new X4OPhaseReadRunAttribute());
|
manager.addX4OPhase(new X4OPhaseReadRunAttribute());
|
||||||
// if (elementLanguage.hasX4ODebugWriter()) {manager.addX4OPhaseHandler(factory.debugPhase());}
|
// if (languageContext.hasX4ODebugWriter()) {manager.addX4OPhaseHandler(factory.debugPhase());}
|
||||||
// templating
|
// templating
|
||||||
manager.addX4OPhase(new X4OPhaseReadFillTemplate());
|
manager.addX4OPhase(new X4OPhaseReadFillTemplate());
|
||||||
// if (elementLanguage.hasX4ODebugWriter()) {manager.addX4OPhaseHandler(factory.debugPhase());}
|
// if (languageContext.hasX4ODebugWriter()) {manager.addX4OPhaseHandler(factory.debugPhase());}
|
||||||
|
|
||||||
// transforming
|
// transforming
|
||||||
manager.addX4OPhase(new X4OPhaseReadTransform());
|
manager.addX4OPhase(new X4OPhaseReadTransform());
|
||||||
manager.addX4OPhase(new X4OPhaseReadRunDirty(manager));
|
manager.addX4OPhase(new X4OPhaseReadRunDirty(manager));
|
||||||
// if (elementLanguage.hasX4ODebugWriter()) {manager.addX4OPhaseHandler(factory.debugPhase());}
|
// if (languageContext.hasX4ODebugWriter()) {manager.addX4OPhaseHandler(factory.debugPhase());}
|
||||||
|
|
||||||
// binding elements
|
// binding elements
|
||||||
manager.addX4OPhase(new X4OPhaseReadBindElement());
|
manager.addX4OPhase(new X4OPhaseReadBindElement());
|
||||||
|
|
||||||
// runing and releasing
|
// runing and releasing
|
||||||
manager.addX4OPhase(new X4OPhaseReadRun());
|
manager.addX4OPhase(new X4OPhaseReadRun());
|
||||||
// if (elementLanguage.hasX4ODebugWriter()) {manager.addX4OPhaseHandler(factory.debugPhase());}
|
// if (languageContext.hasX4ODebugWriter()) {manager.addX4OPhaseHandler(factory.debugPhase());}
|
||||||
|
|
||||||
manager.addX4OPhase(runConf);
|
manager.addX4OPhase(runConf);
|
||||||
|
|
||||||
manager.addX4OPhase(new X4OPhaseReadRunDirtyLast(manager));
|
manager.addX4OPhase(new X4OPhaseReadRunDirtyLast(manager));
|
||||||
// if (elementLanguage.hasX4ODebugWriter()) {manager.addX4OPhaseHandler(factory.debugPhase());}
|
// if (languageContext.hasX4ODebugWriter()) {manager.addX4OPhaseHandler(factory.debugPhase());}
|
||||||
|
|
||||||
|
|
||||||
manager.addX4OPhase(new X4OPhaseReadEnd());
|
manager.addX4OPhase(new X4OPhaseReadEnd());
|
||||||
|
@ -126,9 +126,9 @@ public class X4OPhaseLanguageRead {
|
||||||
manager.addX4OPhase(releasePhase());
|
manager.addX4OPhase(releasePhase());
|
||||||
|
|
||||||
// Add debug phase listener to all phases
|
// Add debug phase listener to all phases
|
||||||
// if (elementLanguage.hasX4ODebugWriter()) {
|
// if (languageContext.hasX4ODebugWriter()) {
|
||||||
//for (X4OPhase h:manager.getOrderedPhases()) {
|
//for (X4OPhase h:manager.getOrderedPhases()) {
|
||||||
// h.addPhaseListener(elementLanguage.getX4ODebugWriter().createDebugX4OPhaseListener());
|
// h.addPhaseListener(languageContext.getX4ODebugWriter().createDebugX4OPhaseListener());
|
||||||
//}
|
//}
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
@ -166,12 +166,12 @@ public class X4OPhaseLanguageRead {
|
||||||
public void runElementPhase(Element element) throws X4OPhaseException {
|
public void runElementPhase(Element element) throws X4OPhaseException {
|
||||||
// not used.
|
// not used.
|
||||||
}
|
}
|
||||||
public void runPhase(X4OLanguageContext elementLanguage) throws X4OPhaseException {
|
public void runPhase(X4OLanguageContext languageContext) throws X4OPhaseException {
|
||||||
// print the properties and classes for this language/config
|
// print the properties and classes for this language/config
|
||||||
if (elementLanguage.hasX4ODebugWriter()) {
|
if (languageContext.hasX4ODebugWriter()) {
|
||||||
try {
|
try {
|
||||||
elementLanguage.getX4ODebugWriter().debugLanguageProperties(elementLanguage);
|
languageContext.getX4ODebugWriter().debugLanguageProperties(languageContext);
|
||||||
elementLanguage.getX4ODebugWriter().debugLanguageDefaultClasses(elementLanguage);
|
languageContext.getX4ODebugWriter().debugLanguageDefaultClasses(languageContext);
|
||||||
} catch (ElementException e) {
|
} catch (ElementException e) {
|
||||||
throw new X4OPhaseException(this,e);
|
throw new X4OPhaseException(this,e);
|
||||||
}
|
}
|
||||||
|
@ -197,63 +197,63 @@ public class X4OPhaseLanguageRead {
|
||||||
}
|
}
|
||||||
public void runElementPhase(Element element) throws X4OPhaseException {
|
public void runElementPhase(Element element) throws X4OPhaseException {
|
||||||
}
|
}
|
||||||
public void runPhase(X4OLanguageContext elementLanguage) throws X4OPhaseException {
|
public void runPhase(X4OLanguageContext languageContext) throws X4OPhaseException {
|
||||||
try {
|
try {
|
||||||
//XMLParserConfiguration config = new XIncludeAwareParserConfiguration();
|
//XMLParserConfiguration config = new XIncludeAwareParserConfiguration();
|
||||||
//config.setProperty("http://apache.org/xml/properties/internal/grammar-pool",myFullGrammarPool);
|
//config.setProperty("http://apache.org/xml/properties/internal/grammar-pool",myFullGrammarPool);
|
||||||
//SAXParser parser = new SAXParser(config);
|
//SAXParser parser = new SAXParser(config);
|
||||||
|
|
||||||
// Create Sax parser with x4o tag handler
|
// Create Sax parser with x4o tag handler
|
||||||
X4OTagHandler xth = new X4OTagHandler(elementLanguage);
|
X4OTagHandler xth = new X4OTagHandler(languageContext);
|
||||||
XMLReader saxParser = XMLReaderFactory.createXMLReader();
|
XMLReader saxParser = XMLReaderFactory.createXMLReader();
|
||||||
saxParser.setErrorHandler(new X4OErrorHandler(elementLanguage));
|
saxParser.setErrorHandler(new X4OErrorHandler(languageContext));
|
||||||
saxParser.setEntityResolver(new X4OEntityResolver(elementLanguage));
|
saxParser.setEntityResolver(new X4OEntityResolver(languageContext));
|
||||||
saxParser.setContentHandler(xth);
|
saxParser.setContentHandler(xth);
|
||||||
saxParser.setProperty("http://xml.org/sax/properties/lexical-handler", xth);
|
saxParser.setProperty("http://xml.org/sax/properties/lexical-handler", xth);
|
||||||
saxParser.setProperty("http://xml.org/sax/properties/declaration-handler",xth);
|
saxParser.setProperty("http://xml.org/sax/properties/declaration-handler",xth);
|
||||||
|
|
||||||
// Set properties and optional
|
// Set properties and optional
|
||||||
Map<String,Object> saxParserProperties = elementLanguage.getLanguage().getLanguageConfiguration().getSAXParserProperties(elementLanguage);
|
Map<String,Object> saxParserProperties = languageContext.getLanguage().getLanguageConfiguration().getSAXParserProperties(languageContext);
|
||||||
for (Map.Entry<String,Object> entry:saxParserProperties.entrySet()) {
|
for (Map.Entry<String,Object> entry:saxParserProperties.entrySet()) {
|
||||||
String name = entry.getKey();
|
String name = entry.getKey();
|
||||||
Object value= entry.getValue();
|
Object value= entry.getValue();
|
||||||
saxParser.setProperty(name, value);
|
saxParser.setProperty(name, value);
|
||||||
debugPhaseMessage("Set SAX property: "+name+" to: "+value,this,elementLanguage);
|
debugPhaseMessage("Set SAX property: "+name+" to: "+value,this,languageContext);
|
||||||
}
|
}
|
||||||
Map<String,Object> saxParserPropertiesOptional = elementLanguage.getLanguage().getLanguageConfiguration().getSAXParserPropertiesOptional(elementLanguage);
|
Map<String,Object> saxParserPropertiesOptional = languageContext.getLanguage().getLanguageConfiguration().getSAXParserPropertiesOptional(languageContext);
|
||||||
for (Map.Entry<String,Object> entry:saxParserPropertiesOptional.entrySet()) {
|
for (Map.Entry<String,Object> entry:saxParserPropertiesOptional.entrySet()) {
|
||||||
String name = entry.getKey();
|
String name = entry.getKey();
|
||||||
Object value= entry.getValue();
|
Object value= entry.getValue();
|
||||||
try {
|
try {
|
||||||
saxParser.setProperty(name, value);
|
saxParser.setProperty(name, value);
|
||||||
debugPhaseMessage("Set SAX optional property: "+name+" to: "+value,this,elementLanguage);
|
debugPhaseMessage("Set SAX optional property: "+name+" to: "+value,this,languageContext);
|
||||||
} catch (SAXException e) {
|
} catch (SAXException e) {
|
||||||
debugPhaseMessage("Could not set optional SAX property: "+name+" to: "+value+" error: "+e.getMessage(),this,elementLanguage);
|
debugPhaseMessage("Could not set optional SAX property: "+name+" to: "+value+" error: "+e.getMessage(),this,languageContext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set sax features and optional
|
// Set sax features and optional
|
||||||
Map<String, Boolean> features = elementLanguage.getLanguage().getLanguageConfiguration().getSAXParserFeatures(elementLanguage);
|
Map<String, Boolean> features = languageContext.getLanguage().getLanguageConfiguration().getSAXParserFeatures(languageContext);
|
||||||
for (String key:features.keySet()) {
|
for (String key:features.keySet()) {
|
||||||
Boolean value=features.get(key);
|
Boolean value=features.get(key);
|
||||||
saxParser.setFeature(key, value);
|
saxParser.setFeature(key, value);
|
||||||
debugPhaseMessage("Set SAX feature: "+key+" to: "+value,this,elementLanguage);
|
debugPhaseMessage("Set SAX feature: "+key+" to: "+value,this,languageContext);
|
||||||
}
|
}
|
||||||
Map<String, Boolean> featuresOptional = elementLanguage.getLanguage().getLanguageConfiguration().getSAXParserFeaturesOptional(elementLanguage);
|
Map<String, Boolean> featuresOptional = languageContext.getLanguage().getLanguageConfiguration().getSAXParserFeaturesOptional(languageContext);
|
||||||
for (String key:featuresOptional.keySet()) {
|
for (String key:featuresOptional.keySet()) {
|
||||||
Boolean value=featuresOptional.get(key);
|
Boolean value=featuresOptional.get(key);
|
||||||
try {
|
try {
|
||||||
saxParser.setFeature(key, value);
|
saxParser.setFeature(key, value);
|
||||||
debugPhaseMessage("Set SAX optional feature: "+key+" to: "+value,this,elementLanguage);
|
debugPhaseMessage("Set SAX optional feature: "+key+" to: "+value,this,languageContext);
|
||||||
} catch (SAXException e) {
|
} catch (SAXException e) {
|
||||||
debugPhaseMessage("Could not set optional SAX feature: "+key+" to: "+value+" error: "+e.getMessage(),this,elementLanguage);
|
debugPhaseMessage("Could not set optional SAX feature: "+key+" to: "+value+" error: "+e.getMessage(),this,languageContext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// check for required features
|
// check for required features
|
||||||
List<String> requiredFeatures = elementLanguage.getLanguage().getLanguageConfiguration().getSAXParserFeaturesRequired(elementLanguage);
|
List<String> requiredFeatures = languageContext.getLanguage().getLanguageConfiguration().getSAXParserFeaturesRequired(languageContext);
|
||||||
for (String requiredFeature:requiredFeatures) {
|
for (String requiredFeature:requiredFeatures) {
|
||||||
debugPhaseMessage("Checking required SAX feature: "+requiredFeature,this,elementLanguage);
|
debugPhaseMessage("Checking required SAX feature: "+requiredFeature,this,languageContext);
|
||||||
if (saxParser.getFeature(requiredFeature)==false) {
|
if (saxParser.getFeature(requiredFeature)==false) {
|
||||||
Exception e = new IllegalStateException("Missing required feature: "+requiredFeature);
|
Exception e = new IllegalStateException("Missing required feature: "+requiredFeature);
|
||||||
throw new X4OPhaseException(this,e);
|
throw new X4OPhaseException(this,e);
|
||||||
|
@ -261,21 +261,21 @@ public class X4OPhaseLanguageRead {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Finally start parsing the xml input stream
|
// Finally start parsing the xml input stream
|
||||||
Object requestInputSource = elementLanguage.getLanguageProperty(X4OLanguageProperty.INPUT_SOURCE_OBJECT);
|
Object requestInputSource = languageContext.getLanguageProperty(X4OLanguageProperty.INPUT_SOURCE_OBJECT);
|
||||||
InputSource input = null;
|
InputSource input = null;
|
||||||
InputStream inputStream = null;
|
InputStream inputStream = null;
|
||||||
if (requestInputSource instanceof InputSource) {
|
if (requestInputSource instanceof InputSource) {
|
||||||
input = (InputSource)requestInputSource;
|
input = (InputSource)requestInputSource;
|
||||||
} else {
|
} else {
|
||||||
inputStream = (InputStream)elementLanguage.getLanguageProperty(X4OLanguageProperty.INPUT_SOURCE_STREAM);
|
inputStream = (InputStream)languageContext.getLanguageProperty(X4OLanguageProperty.INPUT_SOURCE_STREAM);
|
||||||
input = new InputSource(inputStream);
|
input = new InputSource(inputStream);
|
||||||
}
|
}
|
||||||
|
|
||||||
Object requestInputEncoding = elementLanguage.getLanguageProperty(X4OLanguageProperty.INPUT_SOURCE_ENCODING);
|
Object requestInputEncoding = languageContext.getLanguageProperty(X4OLanguageProperty.INPUT_SOURCE_ENCODING);
|
||||||
if (requestInputEncoding!=null && requestInputEncoding instanceof String) {
|
if (requestInputEncoding!=null && requestInputEncoding instanceof String) {
|
||||||
input.setEncoding(requestInputEncoding.toString());
|
input.setEncoding(requestInputEncoding.toString());
|
||||||
}
|
}
|
||||||
Object requestSystemId = elementLanguage.getLanguageProperty(X4OLanguageProperty.INPUT_SOURCE_SYSTEM_ID);
|
Object requestSystemId = languageContext.getLanguageProperty(X4OLanguageProperty.INPUT_SOURCE_SYSTEM_ID);
|
||||||
if (requestSystemId!=null && requestSystemId instanceof String) {
|
if (requestSystemId!=null && requestSystemId instanceof String) {
|
||||||
input.setSystemId(requestSystemId.toString());
|
input.setSystemId(requestSystemId.toString());
|
||||||
}
|
}
|
||||||
|
@ -313,17 +313,17 @@ public class X4OPhaseLanguageRead {
|
||||||
// not used.
|
// not used.
|
||||||
}
|
}
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
public void runPhase(X4OLanguageContext elementLanguage) throws X4OPhaseException {
|
public void runPhase(X4OLanguageContext languageContext) throws X4OPhaseException {
|
||||||
try {
|
try {
|
||||||
Map beanMap = (Map)elementLanguage.getLanguageProperty(X4OLanguageProperty.EL_BEAN_INSTANCE_MAP);
|
Map beanMap = (Map)languageContext.getLanguageProperty(X4OLanguageProperty.EL_BEAN_INSTANCE_MAP);
|
||||||
if (beanMap==null) {
|
if (beanMap==null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (Object elName:beanMap.keySet()) {
|
for (Object elName:beanMap.keySet()) {
|
||||||
Object o = beanMap.get(elName);
|
Object o = beanMap.get(elName);
|
||||||
ValueExpression ve = elementLanguage.getExpressionLanguageFactory().createValueExpression(elementLanguage.getExpressionLanguageContext(),"${"+elName+"}", o.getClass());
|
ValueExpression ve = languageContext.getExpressionLanguageFactory().createValueExpression(languageContext.getExpressionLanguageContext(),"${"+elName+"}", o.getClass());
|
||||||
ve.setValue(elementLanguage.getExpressionLanguageContext(), o);
|
ve.setValue(languageContext.getExpressionLanguageContext(), o);
|
||||||
debugPhaseMessage("Setting el bean: ${"+elName+"} to: "+o.getClass().getName(),this,elementLanguage);
|
debugPhaseMessage("Setting el bean: ${"+elName+"} to: "+o.getClass().getName(),this,languageContext);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new X4OPhaseException(this,e);
|
throw new X4OPhaseException(this,e);
|
||||||
|
@ -359,7 +359,7 @@ public class X4OPhaseLanguageRead {
|
||||||
for (String alias:aliases) {
|
for (String alias:aliases) {
|
||||||
if (element.getAttributes().containsKey(alias)) {
|
if (element.getAttributes().containsKey(alias)) {
|
||||||
String attributeValue = element.getAttributes().get(alias);
|
String attributeValue = element.getAttributes().get(alias);
|
||||||
element.getAttributes().put(eca.getName(), attributeValue);
|
element.getAttributes().put(eca.getId(), attributeValue);
|
||||||
element.getAttributes().remove(alias);
|
element.getAttributes().remove(alias);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -520,7 +520,7 @@ public class X4OPhaseLanguageRead {
|
||||||
if (attrClass.getRunConverters()==null || attrClass.getRunConverters()) {
|
if (attrClass.getRunConverters()==null || attrClass.getRunConverters()) {
|
||||||
value = attrParser.getConvertedParameterValue(name, value, element);
|
value = attrParser.getConvertedParameterValue(name, value, element);
|
||||||
}
|
}
|
||||||
if (attrClass.getRunBeanFill()==null || attrClass.getRunBeanFill()) {
|
if (attrClass.getRunBeanValue()==null || attrClass.getRunBeanValue()) {
|
||||||
element.getLanguageContext().getElementObjectPropertyValue().setProperty(element.getElementObject(), name, value);
|
element.getLanguageContext().getElementObjectPropertyValue().setProperty(element.getElementObject(), name, value);
|
||||||
}
|
}
|
||||||
} else if (autoAttributes) {
|
} else if (autoAttributes) {
|
||||||
|
@ -534,15 +534,15 @@ public class X4OPhaseLanguageRead {
|
||||||
}
|
}
|
||||||
// check for defaults
|
// check for defaults
|
||||||
for (ElementClassAttribute attrClass:element.getElementClass().getElementClassAttributes()) {
|
for (ElementClassAttribute attrClass:element.getElementClass().getElementClassAttributes()) {
|
||||||
if (attrClass.getDefaultValue()!=null && attr.containsKey(attrClass.getName())==false) {
|
if (attrClass.getDefaultValue()!=null && attr.containsKey(attrClass.getId())==false) {
|
||||||
Object value = null;
|
Object value = null;
|
||||||
if (attrClass.getDefaultValue() instanceof String) {
|
if (attrClass.getDefaultValue() instanceof String) {
|
||||||
value = attrParser.getParameterValue(attrClass.getName(),(String)attrClass.getDefaultValue(),element);
|
value = attrParser.getParameterValue(attrClass.getId(),(String)attrClass.getDefaultValue(),element);
|
||||||
} else {
|
} else {
|
||||||
value = attrClass.getDefaultValue();
|
value = attrClass.getDefaultValue();
|
||||||
}
|
}
|
||||||
if (attrClass.getRunBeanFill()==null || attrClass.getRunBeanFill()) {
|
if (attrClass.getRunBeanValue()==null || attrClass.getRunBeanValue()) {
|
||||||
element.getLanguageContext().getElementObjectPropertyValue().setProperty(element.getElementObject(), attrClass.getName(), value);
|
element.getLanguageContext().getElementObjectPropertyValue().setProperty(element.getElementObject(), attrClass.getId(), value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -752,11 +752,11 @@ public class X4OPhaseLanguageRead {
|
||||||
public boolean isElementPhase() {
|
public boolean isElementPhase() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
public void runPhase(X4OLanguageContext elementLanguage) throws X4OPhaseException {
|
public void runPhase(X4OLanguageContext languageContext) throws X4OPhaseException {
|
||||||
for (RunConfigurator conf:runConf) {
|
for (RunConfigurator conf:runConf) {
|
||||||
try {
|
try {
|
||||||
if (elementLanguage.hasX4ODebugWriter()) {
|
if (languageContext.hasX4ODebugWriter()) {
|
||||||
elementLanguage.getX4ODebugWriter().debugElementConfigurator(conf.elementConfigurator,conf.element);
|
languageContext.getX4ODebugWriter().debugElementConfigurator(conf.elementConfigurator,conf.element);
|
||||||
}
|
}
|
||||||
conf.elementConfigurator.doConfigElement(conf.element);
|
conf.elementConfigurator.doConfigElement(conf.element);
|
||||||
} catch (ElementException e) {
|
} catch (ElementException e) {
|
||||||
|
@ -815,12 +815,12 @@ public class X4OPhaseLanguageRead {
|
||||||
public void runElementPhase(Element element) throws X4OPhaseException {
|
public void runElementPhase(Element element) throws X4OPhaseException {
|
||||||
// not used.
|
// not used.
|
||||||
}
|
}
|
||||||
public void runPhase(X4OLanguageContext elementLanguage) throws X4OPhaseException {
|
public void runPhase(X4OLanguageContext languageContext) throws X4OPhaseException {
|
||||||
// print the properties and classes for this language/config
|
// print the properties and classes for this language/config
|
||||||
if (elementLanguage.hasX4ODebugWriter()) {
|
if (languageContext.hasX4ODebugWriter()) {
|
||||||
try {
|
try {
|
||||||
elementLanguage.getX4ODebugWriter().debugLanguageProperties(elementLanguage);
|
languageContext.getX4ODebugWriter().debugLanguageProperties(languageContext);
|
||||||
elementLanguage.getX4ODebugWriter().debugLanguageDefaultClasses(elementLanguage);
|
languageContext.getX4ODebugWriter().debugLanguageDefaultClasses(languageContext);
|
||||||
} catch (ElementException e) {
|
} catch (ElementException e) {
|
||||||
throw new X4OPhaseException(this,e);
|
throw new X4OPhaseException(this,e);
|
||||||
}
|
}
|
||||||
|
@ -840,21 +840,21 @@ public class X4OPhaseLanguageRead {
|
||||||
/**
|
/**
|
||||||
* @see org.x4o.xml.lang.phase.X4OPhaseListener#preRunPhase(org.x4o.xml.lang.phase.X4OPhase, org.x4o.xml.lang.X4OLanguageContext)
|
* @see org.x4o.xml.lang.phase.X4OPhaseListener#preRunPhase(org.x4o.xml.lang.phase.X4OPhase, org.x4o.xml.lang.X4OLanguageContext)
|
||||||
*/
|
*/
|
||||||
public void preRunPhase(X4OPhase phase,X4OLanguageContext elementLanguage) throws X4OPhaseException {
|
public void preRunPhase(X4OPhase phase,X4OLanguageContext languageContext) throws X4OPhaseException {
|
||||||
elementsReleased=0;
|
elementsReleased=0;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @see org.x4o.xml.lang.phase.X4OPhaseListener#endRunPhase(org.x4o.xml.lang.phase.X4OPhase, org.x4o.xml.lang.X4OLanguageContext)
|
* @see org.x4o.xml.lang.phase.X4OPhaseListener#endRunPhase(org.x4o.xml.lang.phase.X4OPhase, org.x4o.xml.lang.X4OLanguageContext)
|
||||||
*/
|
*/
|
||||||
public void endRunPhase(X4OPhase phase,X4OLanguageContext elementLanguage) throws X4OPhaseException {
|
public void endRunPhase(X4OPhase phase,X4OLanguageContext languageContext) throws X4OPhaseException {
|
||||||
if (elementLanguage.hasX4ODebugWriter()==false) {
|
if (languageContext.hasX4ODebugWriter()==false) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
AttributesImpl atts = new AttributesImpl();
|
AttributesImpl atts = new AttributesImpl();
|
||||||
atts.addAttribute ("", "elements", "", "", elementsReleased+"");
|
atts.addAttribute ("", "elements", "", "", elementsReleased+"");
|
||||||
elementLanguage.getX4ODebugWriter().getDebugWriter().startElement (X4ODebugWriter.DEBUG_URI, "executeReleases", "", atts);
|
languageContext.getX4ODebugWriter().getDebugWriter().startElement (X4ODebugWriter.DEBUG_URI, "executeReleases", "", atts);
|
||||||
elementLanguage.getX4ODebugWriter().getDebugWriter().endElement (X4ODebugWriter.DEBUG_URI, "executeReleases" , "");
|
languageContext.getX4ODebugWriter().getDebugWriter().endElement (X4ODebugWriter.DEBUG_URI, "executeReleases" , "");
|
||||||
} catch (SAXException e) {
|
} catch (SAXException e) {
|
||||||
throw new X4OPhaseException(phase,e);
|
throw new X4OPhaseException(phase,e);
|
||||||
}
|
}
|
||||||
|
@ -876,7 +876,7 @@ public class X4OPhaseLanguageRead {
|
||||||
public String[] getPhaseDependencies() {
|
public String[] getPhaseDependencies() {
|
||||||
return new String[] {"READ_END"};
|
return new String[] {"READ_END"};
|
||||||
}
|
}
|
||||||
public void runPhase(X4OLanguageContext elementLanguage) throws X4OPhaseException {
|
public void runPhase(X4OLanguageContext languageContext) throws X4OPhaseException {
|
||||||
}
|
}
|
||||||
public void runElementPhase(Element element) throws X4OPhaseException {
|
public void runElementPhase(Element element) throws X4OPhaseException {
|
||||||
try {
|
try {
|
||||||
|
@ -912,23 +912,23 @@ public class X4OPhaseLanguageRead {
|
||||||
}
|
}
|
||||||
public void runElementPhase(Element element) throws X4OPhaseException {
|
public void runElementPhase(Element element) throws X4OPhaseException {
|
||||||
}
|
}
|
||||||
public void runPhase(X4OLanguageContext elementLanguage) throws X4OPhaseException {
|
public void runPhase(X4OLanguageContext languageContext) throws X4OPhaseException {
|
||||||
// safety check
|
// safety check
|
||||||
if (elementLanguage.hasX4ODebugWriter()==false) {
|
if (languageContext.hasX4ODebugWriter()==false) {
|
||||||
throw new X4OPhaseException(this,"Use debugPhase only when X4OParser.debugWriter is filled.");
|
throw new X4OPhaseException(this,"Use debugPhase only when X4OParser.debugWriter is filled.");
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
AttributesImpl atts = new AttributesImpl();
|
AttributesImpl atts = new AttributesImpl();
|
||||||
//atts.addAttribute ("", key, "", "", value);
|
//atts.addAttribute ("", key, "", "", value);
|
||||||
//atts.addAttribute ("", "verbose", "", "", "true");
|
//atts.addAttribute ("", "verbose", "", "", "true");
|
||||||
elementLanguage.getX4ODebugWriter().getDebugWriter().startElement (X4ODebugWriter.DEBUG_URI, "printElementTree", "", atts);
|
languageContext.getX4ODebugWriter().getDebugWriter().startElement (X4ODebugWriter.DEBUG_URI, "printElementTree", "", atts);
|
||||||
startedPrefix.clear();
|
startedPrefix.clear();
|
||||||
printXML(elementLanguage.getRootElement());
|
printXML(languageContext.getRootElement());
|
||||||
for (String prefix:startedPrefix) {
|
for (String prefix:startedPrefix) {
|
||||||
elementLanguage.getX4ODebugWriter().getDebugWriter().endPrefixMapping(prefix);
|
languageContext.getX4ODebugWriter().getDebugWriter().endPrefixMapping(prefix);
|
||||||
}
|
}
|
||||||
elementLanguage.getX4ODebugWriter().getDebugWriter().endElement(X4ODebugWriter.DEBUG_URI, "printElementTree", "");
|
languageContext.getX4ODebugWriter().getDebugWriter().endElement(X4ODebugWriter.DEBUG_URI, "printElementTree", "");
|
||||||
elementLanguage.getX4ODebugWriter().debugElementLanguage(elementLanguage);
|
languageContext.getX4ODebugWriter().debugLanguageContext(languageContext);
|
||||||
} catch (SAXException e) {
|
} catch (SAXException e) {
|
||||||
throw new X4OPhaseException(this,e);
|
throw new X4OPhaseException(this,e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,215 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2004-2012, Willem Cazander
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
|
||||||
|
* that the following conditions are met:
|
||||||
|
*
|
||||||
|
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
|
||||||
|
* following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
|
||||||
|
* the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
||||||
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
||||||
|
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
||||||
|
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||||
|
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.x4o.xml.lang.phase;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import org.x4o.xml.element.Element;
|
||||||
|
import org.x4o.xml.element.ElementBindingHandler;
|
||||||
|
import org.x4o.xml.element.ElementBindingHandlerException;
|
||||||
|
import org.x4o.xml.element.ElementClass;
|
||||||
|
import org.x4o.xml.element.ElementNamespaceContext;
|
||||||
|
import org.x4o.xml.element.ElementNamespaceInstanceProviderException;
|
||||||
|
import org.x4o.xml.lang.X4OLanguageModule;
|
||||||
|
import org.x4o.xml.lang.X4OLanguageContext;
|
||||||
|
import org.x4o.xml.lang.X4OLanguageModuleLoaderSibling;
|
||||||
|
import org.x4o.xml.lang.X4OLanguageClassLoader;
|
||||||
|
import org.x4o.xml.lang.X4OLanguageLoader;
|
||||||
|
import org.x4o.xml.lang.X4OLanguageLocal;
|
||||||
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* X4OPhaseLanguageWrite defines all phases to write the language.
|
||||||
|
*
|
||||||
|
* @author Willem Cazander
|
||||||
|
* @version 1.0 Apr 7, 2013
|
||||||
|
*/
|
||||||
|
public class X4OPhaseLanguageWrite {
|
||||||
|
|
||||||
|
private Logger logger = null;
|
||||||
|
|
||||||
|
public X4OPhaseLanguageWrite() {
|
||||||
|
logger = Logger.getLogger(X4OPhaseLanguageWrite.class.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void createPhases(DefaultX4OPhaseManager manager) {
|
||||||
|
manager.addX4OPhase(new X4OPhaseWriteStart());
|
||||||
|
manager.addX4OPhase(new X4OPhaseWriteFillTree());
|
||||||
|
//manager.addX4OPhase(new X4OPhaseInitLanguageSiblings());
|
||||||
|
manager.addX4OPhase(new X4OPhaseWriteEnd());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates the X4OPhaseWriteStart which is a empty meta phase.
|
||||||
|
*/
|
||||||
|
class X4OPhaseWriteStart extends AbstractX4OPhase {
|
||||||
|
public X4OPhaseType getType() {
|
||||||
|
return X4OPhaseType.XML_WRITE;
|
||||||
|
}
|
||||||
|
public String getId() {
|
||||||
|
return "WRITE_START";
|
||||||
|
}
|
||||||
|
public String[] getPhaseDependencies() {
|
||||||
|
return new String[]{};
|
||||||
|
}
|
||||||
|
public boolean isElementPhase() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public void runElementPhase(Element element) throws X4OPhaseException {
|
||||||
|
}
|
||||||
|
public void runPhase(X4OLanguageContext languageContext) throws X4OPhaseException {
|
||||||
|
logger.finest("Run init start phase");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fills the element tree
|
||||||
|
*/
|
||||||
|
class X4OPhaseWriteFillTree extends AbstractX4OPhase {
|
||||||
|
public X4OPhaseType getType() {
|
||||||
|
return X4OPhaseType.XML_WRITE;
|
||||||
|
}
|
||||||
|
public String getId() {
|
||||||
|
return "WRITE_FILL_TREE";
|
||||||
|
}
|
||||||
|
public String[] getPhaseDependencies() {
|
||||||
|
return new String[]{"WRITE_START"};
|
||||||
|
}
|
||||||
|
public boolean isElementPhase() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public void runElementPhase(Element element) throws X4OPhaseException {
|
||||||
|
}
|
||||||
|
public void runPhase(X4OLanguageContext languageContext) throws X4OPhaseException {
|
||||||
|
try {
|
||||||
|
Element root = languageContext.getRootElement();
|
||||||
|
// TODO: check for read tree then write support as ec is not null then ..
|
||||||
|
if (root.getElementClass()==null) {
|
||||||
|
root = fillElementTree(languageContext,root.getElementObject());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new X4OPhaseException(this,e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Element fillElementTree(X4OLanguageContext languageContext,Object object) throws ElementNamespaceInstanceProviderException, ElementBindingHandlerException {
|
||||||
|
Element element = findRootElement(languageContext,object.getClass());
|
||||||
|
element.setElementObject(object);
|
||||||
|
languageContext.setRootElement(element);
|
||||||
|
|
||||||
|
for (ElementBindingHandler bind:languageContext.getLanguage().findElementBindingHandlers(object)) {
|
||||||
|
bind.createChilderen(element);
|
||||||
|
fillTree(languageContext,element);
|
||||||
|
}
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void fillTree(X4OLanguageContext languageContext,Element element) throws ElementNamespaceInstanceProviderException, ElementBindingHandlerException {
|
||||||
|
for (Element e:element.getChilderen()) {
|
||||||
|
Object object = e.getElementObject();
|
||||||
|
for (ElementBindingHandler bind:languageContext.getLanguage().findElementBindingHandlers(object)) {
|
||||||
|
bind.createChilderen(e);
|
||||||
|
fillTree(languageContext,e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Element findRootElement(X4OLanguageContext languageContext,Class<?> objectClass) throws ElementNamespaceInstanceProviderException {
|
||||||
|
// redo this mess, add nice find for root
|
||||||
|
for (X4OLanguageModule modContext:languageContext.getLanguage().getLanguageModules()) {
|
||||||
|
for (ElementNamespaceContext nsContext:modContext.getElementNamespaceContexts()) {
|
||||||
|
if (nsContext.getLanguageRoot()!=null && nsContext.getLanguageRoot()) {
|
||||||
|
for (ElementClass ec:nsContext.getElementClasses()) {
|
||||||
|
if (ec.getObjectClass()!=null && ec.getObjectClass().equals(objectClass)) {
|
||||||
|
return nsContext.getElementNamespaceInstanceProvider().createElementInstance(languageContext, ec.getTag());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (X4OLanguageModule modContext:languageContext.getLanguage().getLanguageModules()) {
|
||||||
|
for (ElementNamespaceContext nsContext:modContext.getElementNamespaceContexts()) {
|
||||||
|
for (ElementClass ec:nsContext.getElementClasses()) {
|
||||||
|
if (ec.getObjectClass()!=null && ec.getObjectClass().equals(objectClass)) {
|
||||||
|
return nsContext.getElementNamespaceInstanceProvider().createElementInstance(languageContext, ec.getTag());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new IllegalArgumentException("Could not find ElementClass for: "+objectClass.getName());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads all sibling languages.
|
||||||
|
*/
|
||||||
|
class X4OPhaseInitLanguageSiblings extends AbstractX4OPhase {
|
||||||
|
public X4OPhaseType getType() {
|
||||||
|
return X4OPhaseType.XML_WRITE;
|
||||||
|
}
|
||||||
|
public String getId() {
|
||||||
|
return "WRITE_TREE_VALUES";
|
||||||
|
}
|
||||||
|
public String[] getPhaseDependencies() {
|
||||||
|
return new String[] {"INIT_LANG"};
|
||||||
|
}
|
||||||
|
public boolean isElementPhase() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public void runElementPhase(Element element) throws X4OPhaseException {
|
||||||
|
}
|
||||||
|
public void runPhase(X4OLanguageContext elementLanguage) throws X4OPhaseException {
|
||||||
|
try {
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new X4OPhaseException(this,e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates the X4OPhaseWriteEnd which is a empty meta phase.
|
||||||
|
*/
|
||||||
|
class X4OPhaseWriteEnd extends AbstractX4OPhase {
|
||||||
|
public X4OPhaseType getType() {
|
||||||
|
return X4OPhaseType.XML_WRITE;
|
||||||
|
}
|
||||||
|
public String getId() {
|
||||||
|
return "WRITE_END";
|
||||||
|
}
|
||||||
|
public String[] getPhaseDependencies() {
|
||||||
|
return new String[]{"WRITE_FILL_TREE"};
|
||||||
|
}
|
||||||
|
public boolean isElementPhase() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public void runElementPhase(Element element) throws X4OPhaseException {
|
||||||
|
}
|
||||||
|
public void runPhase(X4OLanguageContext languageContext) throws X4OPhaseException {
|
||||||
|
logger.finest("Run init end phase");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
|
@ -39,6 +39,8 @@ import org.x4o.xml.lang.X4OLanguageContext;
|
||||||
*/
|
*/
|
||||||
public interface X4OPhaseManager {
|
public interface X4OPhaseManager {
|
||||||
|
|
||||||
|
X4OPhase getPhase(String phaseName);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns all the X4OPhaseHandlers.
|
* Returns all the X4OPhaseHandlers.
|
||||||
* @return Returns all X4OPhaseHandlers.
|
* @return Returns all X4OPhaseHandlers.
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides interfaces for two way object converters.
|
* The X4O XML Driver program interface.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
ModuleName: Core Element Languag Module
|
ModuleName: Core Element Languag Module
|
||||||
Namespaces: 2
|
Namespaces: 2
|
||||||
Namespace: http://cel.x4o.org/xml/ns/cel-core
|
Namespace: http://cel.x4o.org/xml/ns/cel-core
|
||||||
Created on: Tue Jan 08 06:02:28 CET 2013
|
Created on: Sat Apr 27 20:01:59 CEST 2013
|
||||||
-->
|
-->
|
||||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||||
xmlns:this="http://cel.x4o.org/xml/ns/cel-core"
|
xmlns:this="http://cel.x4o.org/xml/ns/cel-core"
|
||||||
|
@ -19,12 +19,12 @@
|
||||||
</choice>
|
</choice>
|
||||||
<attribute name="uri" type="string" use="required"/>
|
<attribute name="uri" type="string" use="required"/>
|
||||||
<attribute name="name" type="string"/>
|
<attribute name="name" type="string"/>
|
||||||
|
<attribute name="prefixMapping" type="string"/>
|
||||||
|
<attribute name="languageRoot" type="boolean"/>
|
||||||
<attribute name="elementNamespaceInstanceProvider" type="string"/>
|
<attribute name="elementNamespaceInstanceProvider" type="string"/>
|
||||||
<attribute name="schemaUri" type="string"/>
|
<attribute name="schemaUri" type="string"/>
|
||||||
<attribute name="schemaResource" type="string"/>
|
<attribute name="schemaResource" type="string"/>
|
||||||
<attribute name="schemaPrefix" type="string"/>
|
<attribute name="schemaPrefix" type="string"/>
|
||||||
<attribute name="languageRoot" type="boolean"/>
|
|
||||||
<attribute name="prefixMapping" type="string"/>
|
|
||||||
<attribute name="description" type="string"/>
|
<attribute name="description" type="string"/>
|
||||||
<attribute name="id" type="string"/>
|
<attribute name="id" type="string"/>
|
||||||
</complexType>
|
</complexType>
|
||||||
|
@ -44,11 +44,11 @@
|
||||||
</choice>
|
</choice>
|
||||||
<attribute name="objectClass" type="string"/>
|
<attribute name="objectClass" type="string"/>
|
||||||
<attribute name="elementClass" type="string"/>
|
<attribute name="elementClass" type="string"/>
|
||||||
<attribute name="schemaContentBase" type="string"/>
|
<attribute name="tag" type="string"/>
|
||||||
<attribute name="autoAttributes" type="boolean"/>
|
|
||||||
<attribute name="schemaContentComplex" type="boolean"/>
|
<attribute name="schemaContentComplex" type="boolean"/>
|
||||||
<attribute name="schemaContentMixed" type="boolean"/>
|
<attribute name="schemaContentMixed" type="boolean"/>
|
||||||
<attribute name="tag" type="string"/>
|
<attribute name="schemaContentBase" type="string"/>
|
||||||
|
<attribute name="autoAttributes" type="boolean"/>
|
||||||
<attribute name="description" type="string"/>
|
<attribute name="description" type="string"/>
|
||||||
<attribute name="id" type="string"/>
|
<attribute name="id" type="string"/>
|
||||||
</complexType>
|
</complexType>
|
||||||
|
@ -81,12 +81,13 @@
|
||||||
<element name="description" type="this:descriptionType"/>
|
<element name="description" type="this:descriptionType"/>
|
||||||
</choice>
|
</choice>
|
||||||
<attribute name="name" type="string"/>
|
<attribute name="name" type="string"/>
|
||||||
<attribute name="objectConverter" type="string"/>
|
|
||||||
<attribute name="runResolveEL" type="boolean"/>
|
|
||||||
<attribute name="runConverters" type="boolean"/>
|
|
||||||
<attribute name="runBeanFill" type="boolean"/>
|
|
||||||
<attribute name="required" type="boolean"/>
|
<attribute name="required" type="boolean"/>
|
||||||
<attribute name="defaultValue" type="string"/>
|
<attribute name="defaultValue" type="string"/>
|
||||||
|
<attribute name="runConverters" type="boolean"/>
|
||||||
|
<attribute name="objectConverter" type="string"/>
|
||||||
|
<attribute name="runBeanValue" type="boolean"/>
|
||||||
|
<attribute name="runResolveEL" type="boolean"/>
|
||||||
|
<attribute name="writeOrder" type="integer"/>
|
||||||
<attribute name="description" type="string"/>
|
<attribute name="description" type="string"/>
|
||||||
<attribute name="id" type="string"/>
|
<attribute name="id" type="string"/>
|
||||||
</complexType>
|
</complexType>
|
||||||
|
@ -119,15 +120,70 @@
|
||||||
<attribute name="uri" type="string"/>
|
<attribute name="uri" type="string"/>
|
||||||
<anyAttribute/>
|
<anyAttribute/>
|
||||||
</complexType>
|
</complexType>
|
||||||
<element name="namespace" type="this:namespaceType"/>
|
<element name="namespace" type="this:namespaceType">
|
||||||
<element name="description" type="this:descriptionType"/>
|
<annotation>
|
||||||
<element name="element" type="this:elementType"/>
|
<documentation xml:lang="en">Defines an xml namespace.
|
||||||
<element name="configuratorGlobal" type="this:configuratorGlobalType"/>
|
</documentation>
|
||||||
<element name="configurator" type="this:configuratorType"/>
|
</annotation>
|
||||||
<element name="attributeHandler" type="this:attributeHandlerType"/>
|
</element>
|
||||||
<element name="attribute" type="this:attributeType"/>
|
<element name="description" type="this:descriptionType">
|
||||||
<element name="classConverter" type="this:classConverterType"/>
|
<annotation>
|
||||||
<element name="bindingHandler" type="this:bindingHandlerType"/>
|
<documentation xml:lang="en">Adds description as text on all eld elements.
|
||||||
<element name="elementInterface" type="this:elementInterfaceType"/>
|
</documentation>
|
||||||
<element name="elementParent" type="this:elementParentType"/>
|
</annotation>
|
||||||
|
</element>
|
||||||
|
<element name="element" type="this:elementType">
|
||||||
|
<annotation>
|
||||||
|
<documentation xml:lang="en">Defines xml element tag.
|
||||||
|
</documentation>
|
||||||
|
</annotation>
|
||||||
|
</element>
|
||||||
|
<element name="configuratorGlobal" type="this:configuratorGlobalType">
|
||||||
|
<annotation>
|
||||||
|
<documentation xml:lang="en">Define generic global configuator for languge.
|
||||||
|
</documentation>
|
||||||
|
</annotation>
|
||||||
|
</element>
|
||||||
|
<element name="configurator" type="this:configuratorType">
|
||||||
|
<annotation>
|
||||||
|
<documentation xml:lang="en">Define generic configurator for language.
|
||||||
|
</documentation>
|
||||||
|
</annotation>
|
||||||
|
</element>
|
||||||
|
<element name="attributeHandler" type="this:attributeHandlerType">
|
||||||
|
<annotation>
|
||||||
|
<documentation xml:lang="en">Defines generic attribute handler for language.
|
||||||
|
</documentation>
|
||||||
|
</annotation>
|
||||||
|
</element>
|
||||||
|
<element name="attribute" type="this:attributeType">
|
||||||
|
<annotation>
|
||||||
|
<documentation xml:lang="en">Defines xml element attribute.
|
||||||
|
</documentation>
|
||||||
|
</annotation>
|
||||||
|
</element>
|
||||||
|
<element name="classConverter" type="this:classConverterType">
|
||||||
|
<annotation>
|
||||||
|
<documentation xml:lang="en">Converts string attribute to java class instance.
|
||||||
|
</documentation>
|
||||||
|
</annotation>
|
||||||
|
</element>
|
||||||
|
<element name="bindingHandler" type="this:bindingHandlerType">
|
||||||
|
<annotation>
|
||||||
|
<documentation xml:lang="en">Defines generic binding handler for languge.
|
||||||
|
</documentation>
|
||||||
|
</annotation>
|
||||||
|
</element>
|
||||||
|
<element name="elementInterface" type="this:elementInterfaceType">
|
||||||
|
<annotation>
|
||||||
|
<documentation xml:lang="en">Defines element interface class.
|
||||||
|
</documentation>
|
||||||
|
</annotation>
|
||||||
|
</element>
|
||||||
|
<element name="elementParent" type="this:elementParentType">
|
||||||
|
<annotation>
|
||||||
|
<documentation xml:lang="en">Added (meta) element parent.
|
||||||
|
</documentation>
|
||||||
|
</annotation>
|
||||||
|
</element>
|
||||||
</schema>
|
</schema>
|
|
@ -7,7 +7,7 @@
|
||||||
ModuleName: Core Element Languag Module
|
ModuleName: Core Element Languag Module
|
||||||
Namespaces: 2
|
Namespaces: 2
|
||||||
Namespace: http://cel.x4o.org/xml/ns/cel-root
|
Namespace: http://cel.x4o.org/xml/ns/cel-root
|
||||||
Created on: Tue Jan 08 06:02:28 CET 2013
|
Created on: Sat Apr 27 20:01:59 CEST 2013
|
||||||
-->
|
-->
|
||||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||||
xmlns:cel-core="http://cel.x4o.org/xml/ns/cel-core"
|
xmlns:cel-core="http://cel.x4o.org/xml/ns/cel-core"
|
||||||
|
@ -24,9 +24,9 @@
|
||||||
<element ref="cel-core:namespace"/>
|
<element ref="cel-core:namespace"/>
|
||||||
</choice>
|
</choice>
|
||||||
<attribute name="name" type="string"/>
|
<attribute name="name" type="string"/>
|
||||||
<attribute name="providerName" type="string"/>
|
|
||||||
<attribute name="sourceResource" type="string"/>
|
<attribute name="sourceResource" type="string"/>
|
||||||
<attribute name="elementLanguageModuleLoader" type="string"/>
|
<attribute name="languageModuleLoader" type="string"/>
|
||||||
|
<attribute name="providerName" type="string"/>
|
||||||
<attribute name="description" type="string"/>
|
<attribute name="description" type="string"/>
|
||||||
<attribute name="id" type="string"/>
|
<attribute name="id" type="string"/>
|
||||||
</complexType>
|
</complexType>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
ModuleName: Element Language Definition
|
ModuleName: Element Language Definition
|
||||||
Namespaces: 3
|
Namespaces: 3
|
||||||
Namespace: http://eld.x4o.org/xml/ns/eld-conv
|
Namespace: http://eld.x4o.org/xml/ns/eld-conv
|
||||||
Created on: Mon Apr 08 02:26:14 CEST 2013
|
Created on: Sat Apr 27 20:06:33 CEST 2013
|
||||||
-->
|
-->
|
||||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||||
xmlns:this="http://eld.x4o.org/xml/ns/eld-conv"
|
xmlns:this="http://eld.x4o.org/xml/ns/eld-conv"
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
ModuleName: Element Language Definition
|
ModuleName: Element Language Definition
|
||||||
Namespaces: 3
|
Namespaces: 3
|
||||||
Namespace: http://eld.x4o.org/xml/ns/eld-lang
|
Namespace: http://eld.x4o.org/xml/ns/eld-lang
|
||||||
Created on: Mon Apr 08 02:26:14 CEST 2013
|
Created on: Sat Apr 27 20:06:33 CEST 2013
|
||||||
-->
|
-->
|
||||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||||
xmlns:conv="http://eld.x4o.org/xml/ns/eld-conv"
|
xmlns:conv="http://eld.x4o.org/xml/ns/eld-conv"
|
||||||
|
@ -20,13 +20,13 @@
|
||||||
<element name="element" type="this:elementType"/>
|
<element name="element" type="this:elementType"/>
|
||||||
</choice>
|
</choice>
|
||||||
<attribute name="uri" type="string" use="required"/>
|
<attribute name="uri" type="string" use="required"/>
|
||||||
|
<attribute name="name" type="string"/>
|
||||||
|
<attribute name="prefixMapping" type="string"/>
|
||||||
|
<attribute name="languageRoot" type="boolean"/>
|
||||||
<attribute name="elementNamespaceInstanceProvider" type="string"/>
|
<attribute name="elementNamespaceInstanceProvider" type="string"/>
|
||||||
<attribute name="schemaUri" type="string"/>
|
<attribute name="schemaUri" type="string"/>
|
||||||
<attribute name="schemaResource" type="string"/>
|
<attribute name="schemaResource" type="string"/>
|
||||||
<attribute name="schemaPrefix" type="string"/>
|
<attribute name="schemaPrefix" type="string"/>
|
||||||
<attribute name="languageRoot" type="boolean"/>
|
|
||||||
<attribute name="prefixMapping" type="string"/>
|
|
||||||
<attribute name="name" type="string"/>
|
|
||||||
<attribute name="id" type="string"/>
|
<attribute name="id" type="string"/>
|
||||||
<attribute name="description" type="string"/>
|
<attribute name="description" type="string"/>
|
||||||
</complexType>
|
</complexType>
|
||||||
|
@ -55,10 +55,10 @@
|
||||||
<attribute name="objectClass" type="string"/>
|
<attribute name="objectClass" type="string"/>
|
||||||
<attribute name="elementClass" type="string"/>
|
<attribute name="elementClass" type="string"/>
|
||||||
<attribute name="tag" type="string"/>
|
<attribute name="tag" type="string"/>
|
||||||
<attribute name="schemaContentBase" type="string"/>
|
|
||||||
<attribute name="autoAttributes" type="boolean"/>
|
|
||||||
<attribute name="schemaContentComplex" type="boolean"/>
|
|
||||||
<attribute name="schemaContentMixed" type="boolean"/>
|
<attribute name="schemaContentMixed" type="boolean"/>
|
||||||
|
<attribute name="schemaContentComplex" type="boolean"/>
|
||||||
|
<attribute name="autoAttributes" type="boolean"/>
|
||||||
|
<attribute name="schemaContentBase" type="string"/>
|
||||||
<attribute name="id" type="string"/>
|
<attribute name="id" type="string"/>
|
||||||
<attribute name="description" type="string"/>
|
<attribute name="description" type="string"/>
|
||||||
</complexType>
|
</complexType>
|
||||||
|
@ -126,13 +126,14 @@
|
||||||
<element name="bean" type="this:beanType"/>
|
<element name="bean" type="this:beanType"/>
|
||||||
<element name="description" type="this:descriptionType"/>
|
<element name="description" type="this:descriptionType"/>
|
||||||
</choice>
|
</choice>
|
||||||
<attribute name="objectConverter" type="string"/>
|
<attribute name="name" type="string"/>
|
||||||
<attribute name="defaultValue" type="string"/>
|
<attribute name="defaultValue" type="string"/>
|
||||||
|
<attribute name="required" type="boolean"/>
|
||||||
|
<attribute name="writeOrder" type="integer"/>
|
||||||
|
<attribute name="runBeanValue" type="boolean"/>
|
||||||
<attribute name="runResolveEL" type="boolean"/>
|
<attribute name="runResolveEL" type="boolean"/>
|
||||||
<attribute name="runConverters" type="boolean"/>
|
<attribute name="runConverters" type="boolean"/>
|
||||||
<attribute name="runBeanFill" type="boolean"/>
|
<attribute name="objectConverter" type="string"/>
|
||||||
<attribute name="name" type="string"/>
|
|
||||||
<attribute name="required" type="boolean"/>
|
|
||||||
<attribute name="id" type="string"/>
|
<attribute name="id" type="string"/>
|
||||||
<attribute name="description" type="string"/>
|
<attribute name="description" type="string"/>
|
||||||
</complexType>
|
</complexType>
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
>
|
>
|
||||||
<description>Single root namespace so xsd schema generation works correct.</description>
|
<description>Single root namespace so xsd schema generation works correct.</description>
|
||||||
<element tag="module" objectClass="${parentLanguageConfiguration.defaultElementLanguageModule}" elementClass="org.x4o.xml.eld.lang.ModuleElement">
|
<element tag="module" objectClass="${parentLanguageConfiguration.defaultElementLanguageModule}" elementClass="org.x4o.xml.eld.lang.ModuleElement">
|
||||||
<attribute name="id" required="true">
|
<attribute id="id" required="true">
|
||||||
<description>The module id.</description>
|
<description>The module id.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<description>The module root element.</description>
|
<description>The module root element.</description>
|
||||||
|
@ -73,27 +73,27 @@
|
||||||
<!-- First copy some core elements over from parent config -->
|
<!-- First copy some core elements over from parent config -->
|
||||||
<element tag="namespace" objectClass="${parentLanguageConfiguration.defaultElementNamespaceContext}">
|
<element tag="namespace" objectClass="${parentLanguageConfiguration.defaultElementNamespaceContext}">
|
||||||
<description>Defines an namespace for the language.</description>
|
<description>Defines an namespace for the language.</description>
|
||||||
<attribute name="uri" required="true">
|
<attribute id="uri" required="true">
|
||||||
<description>The namespace id.</description>
|
<description>The namespace id.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
</element>
|
</element>
|
||||||
<element tag="element" objectClass="${parentLanguageConfiguration.defaultElementClass}">
|
<element tag="element" objectClass="${parentLanguageConfiguration.defaultElementClass}">
|
||||||
<description>The xml element.</description>
|
<description>The xml element.</description>
|
||||||
<attribute name="objectClass">
|
<attribute id="objectClass">
|
||||||
<description>The class of the wrapped object.</description>
|
<description>The class of the wrapped object.</description>
|
||||||
<classConverter/>
|
<classConverter/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="elementClass">
|
<attribute id="elementClass">
|
||||||
<description>An custom element class to config object.</description>
|
<description>An custom element class to config object.</description>
|
||||||
<classConverter/>
|
<classConverter/>
|
||||||
</attribute>
|
</attribute>
|
||||||
</element>
|
</element>
|
||||||
<element tag="elementInterface" objectClass="${parentLanguageConfiguration.defaultElementInterface}">
|
<element tag="elementInterface" objectClass="${parentLanguageConfiguration.defaultElementInterface}">
|
||||||
<description>Config element objects by java interface.</description>
|
<description>Config element objects by java interface.</description>
|
||||||
<attribute name="id" required="true">
|
<attribute id="id" required="true">
|
||||||
<description>The interface id.</description>
|
<description>The interface id.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="interfaceClass" required="true">
|
<attribute id="interfaceClass" required="true">
|
||||||
<description>The interface class.</description>
|
<description>The interface class.</description>
|
||||||
<classConverter/>
|
<classConverter/>
|
||||||
</attribute>
|
</attribute>
|
||||||
|
@ -106,10 +106,10 @@
|
||||||
|
|
||||||
<element tag="bindingHandler" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
<element tag="bindingHandler" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||||
<description>Define an className in bean.class for an ElementBindingHandler interface.</description>
|
<description>Define an className in bean.class for an ElementBindingHandler interface.</description>
|
||||||
<attribute name="id" required="true">
|
<attribute id="id" required="true">
|
||||||
<description>The binding handler id.</description>
|
<description>The binding handler id.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="bean.class" required="true">
|
<attribute id="bean.class" required="true">
|
||||||
<description>The class of the binding handler.</description>
|
<description>The class of the binding handler.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<elementParent tag="module" uri="http://eld.x4o.org/xml/ns/eld-root"/>
|
<elementParent tag="module" uri="http://eld.x4o.org/xml/ns/eld-root"/>
|
||||||
|
@ -118,13 +118,13 @@
|
||||||
|
|
||||||
<element tag="attributeHandler" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
<element tag="attributeHandler" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||||
<description>Define an className in bean.class for an ElementAttributeHandler.</description>
|
<description>Define an className in bean.class for an ElementAttributeHandler.</description>
|
||||||
<attribute name="id" required="true">
|
<attribute id="id" required="true">
|
||||||
<description>The atttribute handler id.</description>
|
<description>The atttribute handler id.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="bean.class" required="true">
|
<attribute id="bean.class" required="true">
|
||||||
<description>The class of the attribute handler.</description>
|
<description>The class of the attribute handler.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="attributeName" required="true">
|
<attribute id="attributeName" required="true">
|
||||||
<description>The xml attribute name.</description>
|
<description>The xml attribute name.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<elementParent tag="module" uri="http://eld.x4o.org/xml/ns/eld-root"/>
|
<elementParent tag="module" uri="http://eld.x4o.org/xml/ns/eld-root"/>
|
||||||
|
@ -132,13 +132,13 @@
|
||||||
|
|
||||||
<element tag="configuratorGlobal" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
<element tag="configuratorGlobal" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||||
<description>Define an className in bean.class for an ElementConfiguratorGlobal.</description>
|
<description>Define an className in bean.class for an ElementConfiguratorGlobal.</description>
|
||||||
<attribute name="id" required="true">
|
<attribute id="id" required="true">
|
||||||
<description>The global element configurator id.</description>
|
<description>The global element configurator id.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="bean.class" required="true">
|
<attribute id="bean.class" required="true">
|
||||||
<description>The class of the element configurator.</description>
|
<description>The class of the element configurator.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="configAction">
|
<attribute id="configAction">
|
||||||
<description>If set to true then run in config phase.</description>
|
<description>If set to true then run in config phase.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<elementParent tag="module" uri="http://eld.x4o.org/xml/ns/eld-root"/>
|
<elementParent tag="module" uri="http://eld.x4o.org/xml/ns/eld-root"/>
|
||||||
|
@ -146,13 +146,13 @@
|
||||||
|
|
||||||
<element tag="configurator" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
<element tag="configurator" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||||
<description>Define an className in bean.class for an ElementConfigurator.</description>
|
<description>Define an className in bean.class for an ElementConfigurator.</description>
|
||||||
<attribute name="id" required="true">
|
<attribute id="id" required="true">
|
||||||
<description>The element configurator id.</description>
|
<description>The element configurator id.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="bean.class" required="true">
|
<attribute id="bean.class" required="true">
|
||||||
<description>The class of the global element configurator.</description>
|
<description>The class of the global element configurator.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="configAction">
|
<attribute id="configAction">
|
||||||
<description>If set to true then run in config phase.</description>
|
<description>If set to true then run in config phase.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<elementParent tag="elementInterface"/>
|
<elementParent tag="elementInterface"/>
|
||||||
|
@ -181,17 +181,17 @@
|
||||||
<description>Adds an parent element tag for xsd</description>
|
<description>Adds an parent element tag for xsd</description>
|
||||||
<elementParent tag="element"/>
|
<elementParent tag="element"/>
|
||||||
<elementParent tag="elementInterface"/>
|
<elementParent tag="elementInterface"/>
|
||||||
<attribute name="tag">
|
<attribute id="tag">
|
||||||
<description>The parent tag to have object for.</description>
|
<description>The parent tag to have object for.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="uri">
|
<attribute id="uri">
|
||||||
<description>The element namespace uri if non local parent.</description>
|
<description>The element namespace uri if non local parent.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
</element>
|
</element>
|
||||||
|
|
||||||
<element tag="elementSkipPhase" elementClass="org.x4o.xml.eld.lang.SkipPhaseElement">
|
<element tag="elementSkipPhase" elementClass="org.x4o.xml.eld.lang.SkipPhaseElement">
|
||||||
<description>Adds an phase to skip to the parent element.</description>
|
<description>Adds an phase to skip to the parent element.</description>
|
||||||
<attribute name="name" required="true">
|
<attribute id="name" required="true">
|
||||||
<description>The name of the phase to skip.</description>
|
<description>The name of the phase to skip.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<elementParent tag="element"/>
|
<elementParent tag="element"/>
|
||||||
|
@ -199,7 +199,7 @@
|
||||||
|
|
||||||
<element tag="attributeHandlerNextAttribute" elementClass="org.x4o.xml.eld.lang.NextAttributeElement">
|
<element tag="attributeHandlerNextAttribute" elementClass="org.x4o.xml.eld.lang.NextAttributeElement">
|
||||||
<description>Defines the parameter order.</description>
|
<description>Defines the parameter order.</description>
|
||||||
<attribute name="attributeName" required="true">
|
<attribute id="attributeName" required="true">
|
||||||
<description>The attribute name to run after this attribute.</description>
|
<description>The attribute name to run after this attribute.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<elementParent tag="attributeHandler"/>
|
<elementParent tag="attributeHandler"/>
|
||||||
|
@ -208,7 +208,7 @@
|
||||||
|
|
||||||
<element tag="attributeAlias" elementClass="org.x4o.xml.eld.lang.AttributeAliasElement">
|
<element tag="attributeAlias" elementClass="org.x4o.xml.eld.lang.AttributeAliasElement">
|
||||||
<description>Defines an alias for an attribute name.</description>
|
<description>Defines an alias for an attribute name.</description>
|
||||||
<attribute name="name" required="true">
|
<attribute id="name" required="true">
|
||||||
<description>The alias name to add to the attribute.</description>
|
<description>The alias name to add to the attribute.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<elementParent tag="attribute"/>
|
<elementParent tag="attribute"/>
|
||||||
|
@ -216,13 +216,13 @@
|
||||||
|
|
||||||
<element tag="attributeFromBody" objectClass="org.x4o.xml.eld.lang.AttributeFromBodyConfigurator" autoAttributes="false">
|
<element tag="attributeFromBody" objectClass="org.x4o.xml.eld.lang.AttributeFromBodyConfigurator" autoAttributes="false">
|
||||||
<description>Defines an alias for an attribute name.</description>
|
<description>Defines an alias for an attribute name.</description>
|
||||||
<attribute name="id" required="true">
|
<attribute id="id" required="true">
|
||||||
<description>The id for this configurator.</description>
|
<description>The id for this configurator.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="name" required="true">
|
<attribute id="name" required="true">
|
||||||
<description>The attribute name to fill the value.</description>
|
<description>The attribute name to fill the value.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="bodyType">
|
<attribute id="bodyType">
|
||||||
<description>See org.x4o.xml.element.Element.ElementType for options defaults to 'characters'.</description>
|
<description>See org.x4o.xml.element.Element.ElementType for options defaults to 'characters'.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
</element>
|
</element>
|
||||||
|
@ -231,21 +231,21 @@
|
||||||
autoAttributes="false"
|
autoAttributes="false"
|
||||||
>
|
>
|
||||||
<description>Lets you dynamicly bind to object togecher.</description>
|
<description>Lets you dynamicly bind to object togecher.</description>
|
||||||
<attribute name="id" required="true">
|
<attribute id="id" required="true">
|
||||||
<description>The id for this binding handler.</description>
|
<description>The id for this binding handler.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="parentClass" required="true">
|
<attribute id="parentClass" required="true">
|
||||||
<description>The parent class.</description>
|
<description>The parent class.</description>
|
||||||
<classConverter/>
|
<classConverter/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="childClass" required="true">
|
<attribute id="childClass" required="true">
|
||||||
<description>The child class.</description>
|
<description>The child class.</description>
|
||||||
<classConverter/>
|
<classConverter/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="addMethod" required="true">
|
<attribute id="addMethod" required="true">
|
||||||
<description>The method name of the method used to add the child to the parent.</description>
|
<description>The method name of the method used to add the child to the parent.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="getMethod" required="true">
|
<attribute id="getMethod" required="true">
|
||||||
<description>The method name of the method used to get the childeren of the parent.</description>
|
<description>The method name of the method used to get the childeren of the parent.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
</element>
|
</element>
|
||||||
|
@ -256,7 +256,7 @@
|
||||||
<element tag="bean" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
<element tag="bean" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||||
<!-- BIG NOTE: maybe beanElement most go to meta to have clean impl. -->
|
<!-- BIG NOTE: maybe beanElement most go to meta to have clean impl. -->
|
||||||
<description>Loads bean into the Element</description>
|
<description>Loads bean into the Element</description>
|
||||||
<attribute name="bean.class">
|
<attribute id="bean.class">
|
||||||
<description>The class name of the the class to load.</description>
|
<description>The class name of the the class to load.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<elementParent tag="module" uri="http://eld.x4o.org/xml/ns/eld-root"/>
|
<elementParent tag="module" uri="http://eld.x4o.org/xml/ns/eld-root"/>
|
||||||
|
@ -278,7 +278,7 @@
|
||||||
|
|
||||||
<element tag="beanConverter" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
<element tag="beanConverter" elementClass="org.x4o.xml.eld.lang.BeanElement">
|
||||||
<description>Define an loadable in bean.class for an ObjectConverter.</description>
|
<description>Define an loadable in bean.class for an ObjectConverter.</description>
|
||||||
<attribute name="bean.class">
|
<attribute id="bean.class">
|
||||||
<description>The class name of the converter to load.</description>
|
<description>The class name of the converter to load.</description>
|
||||||
</attribute>
|
</attribute>
|
||||||
<elementParent tag="attribute" uri="http://eld.x4o.org/xml/ns/eld-lang"/>
|
<elementParent tag="attribute" uri="http://eld.x4o.org/xml/ns/eld-lang"/>
|
||||||
|
@ -296,20 +296,20 @@
|
||||||
<element tag="enumConverter" objectClass="org.x4o.xml.conv.text.EnumConverter" />
|
<element tag="enumConverter" objectClass="org.x4o.xml.conv.text.EnumConverter" />
|
||||||
|
|
||||||
<element tag="stringSplitConverter" objectClass="org.x4o.xml.conv.text.StringSplitConverter">
|
<element tag="stringSplitConverter" objectClass="org.x4o.xml.conv.text.StringSplitConverter">
|
||||||
<attribute name="classTo" required="true">
|
<attribute id="classTo" required="true">
|
||||||
<description>The class name to convert the string to.</description>
|
<description>The class name to convert the string to.</description>
|
||||||
<classConverter/>
|
<classConverter/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="split" required="true" description="The split regex."/>
|
<attribute id="split" required="true" description="The split regex."/>
|
||||||
<attribute name="splitSize" required="true" description="The split value expected size."/>
|
<attribute id="splitSize" required="true" description="The split value expected size."/>
|
||||||
<attribute name="singleToMethod" description="Shortcut to use only this method for the 'to' convert."/>
|
<attribute id="singleToMethod" description="Shortcut to use only this method for the 'to' convert."/>
|
||||||
<attribute name="useNativeType" description="Set to true to convert to native data type."/>
|
<attribute id="useNativeType" description="Set to true to convert to native data type."/>
|
||||||
</element>
|
</element>
|
||||||
<element tag="stringSplitConverterStep" objectClass="org.x4o.xml.conv.text.StringSplitConverterStep">
|
<element tag="stringSplitConverterStep" objectClass="org.x4o.xml.conv.text.StringSplitConverterStep">
|
||||||
<attribute name="fromMethod" required="true" description="The convert 'from' method step."/>
|
<attribute id="fromMethod" required="true" description="The convert 'from' method step."/>
|
||||||
<attribute name="toMethod" required="false" description="The convert 'to' method step."/>
|
<attribute id="toMethod" required="false" description="The convert 'to' method step."/>
|
||||||
<attribute name="fromOrder" required="true" description="The convert 'from' order."/>
|
<attribute id="fromOrder" required="true" description="The convert 'from' order."/>
|
||||||
<attribute name="toOrder" required="true" description="The convert 'to' order."/>
|
<attribute id="toOrder" required="true" description="The convert 'to' order."/>
|
||||||
</element>
|
</element>
|
||||||
</namespace>
|
</namespace>
|
||||||
</root:module>
|
</root:module>
|
|
@ -7,7 +7,7 @@
|
||||||
ModuleName: Element Language Definition
|
ModuleName: Element Language Definition
|
||||||
Namespaces: 3
|
Namespaces: 3
|
||||||
Namespace: http://eld.x4o.org/xml/ns/eld-root
|
Namespace: http://eld.x4o.org/xml/ns/eld-root
|
||||||
Created on: Mon Apr 08 02:26:14 CEST 2013
|
Created on: Sat Apr 27 20:06:33 CEST 2013
|
||||||
-->
|
-->
|
||||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||||
xmlns:conv="http://eld.x4o.org/xml/ns/eld-conv"
|
xmlns:conv="http://eld.x4o.org/xml/ns/eld-conv"
|
||||||
|
@ -28,10 +28,10 @@
|
||||||
<element ref="lang:namespace"/>
|
<element ref="lang:namespace"/>
|
||||||
</choice>
|
</choice>
|
||||||
<attribute name="id" type="string" use="required"/>
|
<attribute name="id" type="string" use="required"/>
|
||||||
|
<attribute name="name" type="string"/>
|
||||||
<attribute name="providerName" type="string"/>
|
<attribute name="providerName" type="string"/>
|
||||||
<attribute name="sourceResource" type="string"/>
|
<attribute name="sourceResource" type="string"/>
|
||||||
<attribute name="languageModuleLoader" type="string"/>
|
<attribute name="languageModuleLoader" type="string"/>
|
||||||
<attribute name="name" type="string"/>
|
|
||||||
<attribute name="description" type="string"/>
|
<attribute name="description" type="string"/>
|
||||||
</complexType>
|
</complexType>
|
||||||
</element>
|
</element>
|
||||||
|
|
|
@ -62,10 +62,17 @@ public class X4OWriterTest extends TestCase {
|
||||||
TestObjectRoot root = reader.readResource("tests/attributes/test-bean.xml");
|
TestObjectRoot root = reader.readResource("tests/attributes/test-bean.xml");
|
||||||
writer.writeFile(root, outputFile);
|
writer.writeFile(root, outputFile);
|
||||||
|
|
||||||
assertTrue("Debug file does not exists.",outputFile.exists());
|
|
||||||
|
|
||||||
String text = new Scanner( outputFile ).useDelimiter("\\A").next();
|
String text = new Scanner( outputFile ).useDelimiter("\\A").next();
|
||||||
System.out.println("Output: '\n"+text+"\n' end in "+outputFile.getAbsolutePath());
|
|
||||||
|
assertTrue(text.startsWith("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"));
|
||||||
|
assertTrue(text.contains("http://test.x4o.org/xml/ns/test-root"));
|
||||||
|
assertTrue(text.contains("<test-lang:parent name=\"test-bean.xml\"/>"));
|
||||||
|
assertTrue(text.contains("<test-lang:testBean"));
|
||||||
|
assertTrue(text.contains("privateIntegerTypeField=\"123\""));
|
||||||
|
assertTrue(text.contains("privateDoubleObjectField=\"123.45\""));
|
||||||
|
assertTrue(text.contains("privateStringObjectField=\"x4o\""));
|
||||||
|
|
||||||
|
//System.out.println("Output: '\n"+text+"\n' end in "+outputFile.getAbsolutePath());
|
||||||
|
|
||||||
outputFile.delete();
|
outputFile.delete();
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,12 +47,4 @@ public class TestDriver extends X4ODriver<TestObjectRoot> {
|
||||||
static public TestDriver getInstance() {
|
static public TestDriver getInstance() {
|
||||||
return (TestDriver)X4ODriverManager.getX4ODriver(LANGUAGE_NAME);
|
return (TestDriver)X4ODriverManager.getX4ODriver(LANGUAGE_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
public X4OReaderContext<TestObjectRoot> createReaderContext() {
|
|
||||||
return (X4OReaderContext<TestObjectRoot>)super.createReader();
|
|
||||||
}
|
|
||||||
|
|
||||||
public X4OWriterContext<TestObjectRoot> createWriterContext() {
|
|
||||||
return (X4OWriterContext<TestObjectRoot>)super.createWriter();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
|
|
||||||
<eld:elementInterface id="Component" interfaceClass="java.awt.Component">
|
<eld:elementInterface id="Component" interfaceClass="java.awt.Component">
|
||||||
<eld:description>Configs the Component based objects.</eld:description>
|
<eld:description>Configs the Component based objects.</eld:description>
|
||||||
<eld:attribute name="bounds">
|
<eld:attribute id="bounds">
|
||||||
<conv:stringSplitConverter classTo="java.awt.Rectangle" split="," splitSize="4" singleToMethod="setRect" useNativeType="true">
|
<conv:stringSplitConverter classTo="java.awt.Rectangle" split="," splitSize="4" singleToMethod="setRect" useNativeType="true">
|
||||||
<conv:stringSplitConverterStep fromMethod="getX" fromOrder="1" toOrder="1"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getX" fromOrder="1" toOrder="1"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
||||||
<conv:stringSplitConverterStep fromMethod="getY" fromOrder="2" toOrder="2"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getY" fromOrder="2" toOrder="2"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
<classBindingHandler id="JRootPane-JComponent" parentClass="javax.swing.JRootPane" childClass="javax.swing.JComponent" addMethod="add" getMethod="getComponents"/>
|
<classBindingHandler id="JRootPane-JComponent" parentClass="javax.swing.JRootPane" childClass="javax.swing.JComponent" addMethod="add" getMethod="getComponents"/>
|
||||||
|
|
||||||
<elementInterface id="Component" interfaceClass="java.awt.Component">
|
<elementInterface id="Component" interfaceClass="java.awt.Component">
|
||||||
<attribute name="bounds">
|
<attribute id="bounds">
|
||||||
<conv:stringSplitConverter classTo="java.awt.Rectangle" split="," splitSize="4" singleToMethod="setRect" useNativeType="true">
|
<conv:stringSplitConverter classTo="java.awt.Rectangle" split="," splitSize="4" singleToMethod="setRect" useNativeType="true">
|
||||||
<conv:stringSplitConverterStep fromMethod="getX" fromOrder="1" toOrder="1"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getX" fromOrder="1" toOrder="1"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
||||||
<conv:stringSplitConverterStep fromMethod="getY" fromOrder="2" toOrder="2"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getY" fromOrder="2" toOrder="2"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
||||||
|
@ -54,36 +54,37 @@
|
||||||
<conv:stringSplitConverterStep fromMethod="getHeight" fromOrder="4" toOrder="4"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getHeight" fromOrder="4" toOrder="4"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
||||||
</conv:stringSplitConverter>
|
</conv:stringSplitConverter>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="size">
|
<attribute id="size">
|
||||||
<conv:stringSplitConverter classTo="java.awt.Dimension" split="," splitSize="2" singleToMethod="setSize" useNativeType="true">
|
<conv:stringSplitConverter classTo="java.awt.Dimension" split="," splitSize="2" singleToMethod="setSize" useNativeType="true">
|
||||||
<conv:stringSplitConverterStep fromMethod="getHeight" fromOrder="1" toOrder="1"><conv:integerConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getHeight" fromOrder="1" toOrder="1"><conv:integerConverter/></conv:stringSplitConverterStep>
|
||||||
<conv:stringSplitConverterStep fromMethod="getWidth" fromOrder="2" toOrder="2"><conv:integerConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getWidth" fromOrder="2" toOrder="2"><conv:integerConverter/></conv:stringSplitConverterStep>
|
||||||
</conv:stringSplitConverter>
|
</conv:stringSplitConverter>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="icon">
|
<attribute id="icon">
|
||||||
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.IconConverter"/>
|
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.IconConverter"/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="background">
|
<attribute id="background">
|
||||||
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.ColorConverter"/>
|
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.ColorConverter"/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="location">
|
<attribute id="location">
|
||||||
<conv:stringSplitConverter classTo="java.awt.Point" split="," splitSize="2" singleToMethod="setLocation" useNativeType="true">
|
<conv:stringSplitConverter classTo="java.awt.Point" split="," splitSize="2" singleToMethod="setLocation" useNativeType="true">
|
||||||
<conv:stringSplitConverterStep fromMethod="getX" fromOrder="1" toOrder="1"><conv:integerConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getX" fromOrder="1" toOrder="1"><conv:integerConverter/></conv:stringSplitConverterStep>
|
||||||
<conv:stringSplitConverterStep fromMethod="getY" fromOrder="2" toOrder="2"><conv:integerConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getY" fromOrder="2" toOrder="2"><conv:integerConverter/></conv:stringSplitConverterStep>
|
||||||
</conv:stringSplitConverter>
|
</conv:stringSplitConverter>
|
||||||
</attribute>
|
</attribute>
|
||||||
|
<attribute id="locationOnScreen" runBeanValue="false"/>
|
||||||
</elementInterface>
|
</elementInterface>
|
||||||
|
|
||||||
<elementInterface id="JComponent" interfaceClass="javax.swing.JComponent">
|
<elementInterface id="JComponent" interfaceClass="javax.swing.JComponent">
|
||||||
<attribute name="layout">
|
<attribute id="layout">
|
||||||
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.LayoutConverter"/>
|
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.LayoutConverter"/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="border">
|
<attribute id="border">
|
||||||
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.BorderConverter"/>
|
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.BorderConverter"/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="toolTipText"><attributeAlias name="ToolTipText"/></attribute>
|
<attribute id="toolTipText"><attributeAlias name="ToolTipText"/></attribute>
|
||||||
<attribute name="focusPainted"><attributeAlias name="FocusPainted"/></attribute>
|
<attribute id="focusPainted"><attributeAlias name="FocusPainted"/></attribute>
|
||||||
<attribute name="borderPainted"><attributeAlias name="BorderPainted"/></attribute>
|
<attribute id="borderPainted"><attributeAlias name="BorderPainted"/></attribute>
|
||||||
</elementInterface>
|
</elementInterface>
|
||||||
|
|
||||||
|
|
||||||
|
@ -111,21 +112,21 @@
|
||||||
<element tag="menubar" objectClass="javax.swing.JMenuBar"/>
|
<element tag="menubar" objectClass="javax.swing.JMenuBar"/>
|
||||||
<element tag="menu" objectClass="javax.swing.JMenu"/>
|
<element tag="menu" objectClass="javax.swing.JMenu"/>
|
||||||
<element tag="menuitem" objectClass="javax.swing.JMenuItem">
|
<element tag="menuitem" objectClass="javax.swing.JMenuItem">
|
||||||
<attribute name="accelerator">
|
<attribute id="accelerator">
|
||||||
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.KeyStrokeConverter"/>
|
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.KeyStrokeConverter"/>
|
||||||
<attributeAlias name="Accelerator"/>
|
<attributeAlias name="Accelerator"/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="mnemonic" runBeanFill="false"/>
|
<attribute id="mnemonic" runBeanValue="false"/>
|
||||||
<attribute name="Action" runBeanFill="false"/>
|
<attribute id="Action" runBeanValue="false"/>
|
||||||
<configurator id="menuitem-action" bean.class="org.x4o.xml.test.swixml.SwiXmlActionConfigurator"/>
|
<configurator id="menuitem-action" bean.class="org.x4o.xml.test.swixml.SwiXmlActionConfigurator"/>
|
||||||
</element>
|
</element>
|
||||||
<element tag="separator" />
|
<element tag="separator" />
|
||||||
<element tag="panel" objectClass="javax.swing.JPanel"/>
|
<element tag="panel" objectClass="javax.swing.JPanel"/>
|
||||||
<element tag="splitpane" objectClass="javax.swing.JSplitPane">
|
<element tag="splitpane" objectClass="javax.swing.JSplitPane">
|
||||||
<attribute name="orientation">
|
<attribute id="orientation">
|
||||||
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.JSplitPaneOrientationConverter"/>
|
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.JSplitPaneOrientationConverter"/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="dividerLocation">
|
<attribute id="dividerLocation">
|
||||||
<conv:integerConverter/>
|
<conv:integerConverter/>
|
||||||
</attribute>
|
</attribute>
|
||||||
</element>
|
</element>
|
||||||
|
@ -142,11 +143,11 @@
|
||||||
<element tag="textfield" objectClass="javax.swing.JTextField"/>
|
<element tag="textfield" objectClass="javax.swing.JTextField"/>
|
||||||
<element tag="desktoppane" objectClass="javax.swing.JDesktopPane"/>
|
<element tag="desktoppane" objectClass="javax.swing.JDesktopPane"/>
|
||||||
<element tag="internalframe" objectClass="javax.swing.JInternalFrame">
|
<element tag="internalframe" objectClass="javax.swing.JInternalFrame">
|
||||||
<attribute name="title"><attributeAlias name="Title"/></attribute>
|
<attribute id="title"><attributeAlias name="Title"/></attribute>
|
||||||
<attribute name="bounds"><attributeAlias name="Bounds"/></attribute>
|
<attribute id="bounds"><attributeAlias name="Bounds"/></attribute>
|
||||||
<attribute name="layout"><attributeAlias name="Layout"/></attribute>
|
<attribute id="layout"><attributeAlias name="Layout"/></attribute>
|
||||||
<attribute name="visible"><attributeAlias name="Visible"/></attribute>
|
<attribute id="visible"><attributeAlias name="Visible"/></attribute>
|
||||||
<attribute name="resizable"><attributeAlias name="Resizable"/></attribute>
|
<attribute id="resizable"><attributeAlias name="Resizable"/></attribute>
|
||||||
</element>
|
</element>
|
||||||
</namespace>
|
</namespace>
|
||||||
</root:module>
|
</root:module>
|
|
@ -46,7 +46,7 @@
|
||||||
<classBindingHandler id="JRootPane-JComponent" parentClass="javax.swing.JRootPane" childClass="javax.swing.JComponent" addMethod="add" getMethod="getComponents"/>
|
<classBindingHandler id="JRootPane-JComponent" parentClass="javax.swing.JRootPane" childClass="javax.swing.JComponent" addMethod="add" getMethod="getComponents"/>
|
||||||
|
|
||||||
<elementInterface id="Component" interfaceClass="java.awt.Component">
|
<elementInterface id="Component" interfaceClass="java.awt.Component">
|
||||||
<attribute name="bounds">
|
<attribute id="bounds">
|
||||||
<conv:stringSplitConverter classTo="java.awt.Rectangle" split="," splitSize="4" singleToMethod="setRect" useNativeType="true">
|
<conv:stringSplitConverter classTo="java.awt.Rectangle" split="," splitSize="4" singleToMethod="setRect" useNativeType="true">
|
||||||
<conv:stringSplitConverterStep fromMethod="getX" fromOrder="1" toOrder="1"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getX" fromOrder="1" toOrder="1"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
||||||
<conv:stringSplitConverterStep fromMethod="getY" fromOrder="2" toOrder="2"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getY" fromOrder="2" toOrder="2"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
||||||
|
@ -54,31 +54,32 @@
|
||||||
<conv:stringSplitConverterStep fromMethod="getHeight" fromOrder="4" toOrder="4"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getHeight" fromOrder="4" toOrder="4"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
||||||
</conv:stringSplitConverter>
|
</conv:stringSplitConverter>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="size">
|
<attribute id="size">
|
||||||
<conv:stringSplitConverter classTo="java.awt.Dimension" split="," splitSize="2" singleToMethod="setSize" useNativeType="true">
|
<conv:stringSplitConverter classTo="java.awt.Dimension" split="," splitSize="2" singleToMethod="setSize" useNativeType="true">
|
||||||
<conv:stringSplitConverterStep fromMethod="getHeight" fromOrder="1" toOrder="1"><conv:integerConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getHeight" fromOrder="1" toOrder="1"><conv:integerConverter/></conv:stringSplitConverterStep>
|
||||||
<conv:stringSplitConverterStep fromMethod="getWidth" fromOrder="2" toOrder="2"><conv:integerConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getWidth" fromOrder="2" toOrder="2"><conv:integerConverter/></conv:stringSplitConverterStep>
|
||||||
</conv:stringSplitConverter>
|
</conv:stringSplitConverter>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="icon">
|
<attribute id="icon">
|
||||||
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.IconConverter"/>
|
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.IconConverter"/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="background">
|
<attribute id="background">
|
||||||
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.ColorConverter"/>
|
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.ColorConverter"/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="location">
|
<attribute id="location">
|
||||||
<conv:stringSplitConverter classTo="java.awt.Point" split="," splitSize="2" singleToMethod="setLocation" useNativeType="true">
|
<conv:stringSplitConverter classTo="java.awt.Point" split="," splitSize="2" singleToMethod="setLocation" useNativeType="true">
|
||||||
<conv:stringSplitConverterStep fromMethod="getX" fromOrder="1" toOrder="1"><conv:integerConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getX" fromOrder="1" toOrder="1"><conv:integerConverter/></conv:stringSplitConverterStep>
|
||||||
<conv:stringSplitConverterStep fromMethod="getY" fromOrder="2" toOrder="2"><conv:integerConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getY" fromOrder="2" toOrder="2"><conv:integerConverter/></conv:stringSplitConverterStep>
|
||||||
</conv:stringSplitConverter>
|
</conv:stringSplitConverter>
|
||||||
</attribute>
|
</attribute>
|
||||||
|
<attribute id="locationOnScreen" runBeanValue="false"/>
|
||||||
</elementInterface>
|
</elementInterface>
|
||||||
|
|
||||||
<elementInterface id="JComponent" interfaceClass="javax.swing.JComponent">
|
<elementInterface id="JComponent" interfaceClass="javax.swing.JComponent">
|
||||||
<attribute name="layout">
|
<attribute id="layout">
|
||||||
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.LayoutConverter"/>
|
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.LayoutConverter"/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="border">
|
<attribute id="border">
|
||||||
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.BorderConverter"/>
|
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.BorderConverter"/>
|
||||||
</attribute>
|
</attribute>
|
||||||
</elementInterface>
|
</elementInterface>
|
||||||
|
@ -105,21 +106,21 @@
|
||||||
<element tag="JMenubar" objectClass="javax.swing.JMenuBar"/>
|
<element tag="JMenubar" objectClass="javax.swing.JMenuBar"/>
|
||||||
<element tag="JMenu" objectClass="javax.swing.JMenu"/>
|
<element tag="JMenu" objectClass="javax.swing.JMenu"/>
|
||||||
<element tag="JMenuItem" objectClass="javax.swing.JMenuItem">
|
<element tag="JMenuItem" objectClass="javax.swing.JMenuItem">
|
||||||
<attribute name="accelerator">
|
<attribute id="accelerator">
|
||||||
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.KeyStrokeConverter"/>
|
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.KeyStrokeConverter"/>
|
||||||
<attributeAlias name="Accelerator"/>
|
<attributeAlias name="Accelerator"/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="mnemonic" runBeanFill="false"/>
|
<attribute id="mnemonic" runBeanValue="false"/>
|
||||||
<attribute name="Action" runBeanFill="false"/>
|
<attribute id="Action" runBeanValue="false"/>
|
||||||
<configurator id="menuitem-action" bean.class="org.x4o.xml.test.swixml.SwiXmlActionConfigurator"/>
|
<configurator id="menuitem-action" bean.class="org.x4o.xml.test.swixml.SwiXmlActionConfigurator"/>
|
||||||
</element>
|
</element>
|
||||||
<element tag="JMenu.Separator" />
|
<element tag="JMenu.Separator" />
|
||||||
<element tag="JPanel" objectClass="javax.swing.JPanel"/>
|
<element tag="JPanel" objectClass="javax.swing.JPanel"/>
|
||||||
<element tag="JSplitPane" objectClass="javax.swing.JSplitPane">
|
<element tag="JSplitPane" objectClass="javax.swing.JSplitPane">
|
||||||
<attribute name="orientation">
|
<attribute id="orientation">
|
||||||
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.JSplitPaneOrientationConverter"/>
|
<conv:beanConverter bean.class="org.x4o.xml.test.swixml.conv.JSplitPaneOrientationConverter"/>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="dividerLocation">
|
<attribute id="dividerLocation">
|
||||||
<conv:integerConverter/>
|
<conv:integerConverter/>
|
||||||
</attribute>
|
</attribute>
|
||||||
</element>
|
</element>
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
|
|
||||||
<eld:elementInterface id="Component" interfaceClass="java.awt.Component">
|
<eld:elementInterface id="Component" interfaceClass="java.awt.Component">
|
||||||
<eld:description>Configs the Component based objects.</eld:description>
|
<eld:description>Configs the Component based objects.</eld:description>
|
||||||
<eld:attribute name="bounds">
|
<eld:attribute id="bounds">
|
||||||
<conv:stringSplitConverter classTo="java.awt.Rectangle" split="," splitSize="4" singleToMethod="setRect" useNativeType="true">
|
<conv:stringSplitConverter classTo="java.awt.Rectangle" split="," splitSize="4" singleToMethod="setRect" useNativeType="true">
|
||||||
<conv:stringSplitConverterStep fromMethod="getX" fromOrder="1" toOrder="1"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getX" fromOrder="1" toOrder="1"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
||||||
<conv:stringSplitConverterStep fromMethod="getY" fromOrder="2" toOrder="2"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
<conv:stringSplitConverterStep fromMethod="getY" fromOrder="2" toOrder="2"><conv:doubleConverter/></conv:stringSplitConverterStep>
|
||||||
|
|
|
@ -807,7 +807,7 @@ public class EldDocHtmlWriter {
|
||||||
private void printElementAttributes(PrintWriter pw,Collection<ElementClassAttribute> elementClassAttributes) {
|
private void printElementAttributes(PrintWriter pw,Collection<ElementClassAttribute> elementClassAttributes) {
|
||||||
printTableStart(pw,"Element Attributes");
|
printTableStart(pw,"Element Attributes");
|
||||||
for (ElementClassAttribute attr:elementClassAttributes) {
|
for (ElementClassAttribute attr:elementClassAttributes) {
|
||||||
printTableRowSummary(pw,attr.getName(),attr.getDescription());
|
printTableRowSummary(pw,attr.getId(),attr.getDescription());
|
||||||
}
|
}
|
||||||
printTableEnd(pw);
|
printTableEnd(pw);
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The X4O XML Meta Language.
|
* The XML Meta Language.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* @since 1.0
|
* @since 1.0
|
||||||
|
|
|
@ -25,8 +25,6 @@ package org.x4o.xml.lang.meta;
|
||||||
|
|
||||||
import org.x4o.xml.X4ODriver;
|
import org.x4o.xml.X4ODriver;
|
||||||
import org.x4o.xml.X4ODriverManager;
|
import org.x4o.xml.X4ODriverManager;
|
||||||
import org.x4o.xml.io.X4OReaderContext;
|
|
||||||
import org.x4o.xml.io.X4OWriterContext;
|
|
||||||
|
|
||||||
public class MTestDriver extends X4ODriver<Object> {
|
public class MTestDriver extends X4ODriver<Object> {
|
||||||
|
|
||||||
|
@ -46,12 +44,4 @@ public class MTestDriver extends X4ODriver<Object> {
|
||||||
static public MTestDriver getInstance() {
|
static public MTestDriver getInstance() {
|
||||||
return (MTestDriver)X4ODriverManager.getX4ODriver(LANGUAGE_NAME);
|
return (MTestDriver)X4ODriverManager.getX4ODriver(LANGUAGE_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
public X4OReaderContext<?> createReaderContext() {
|
|
||||||
return (X4OReaderContext<?>)super.createReader();
|
|
||||||
}
|
|
||||||
|
|
||||||
public X4OWriterContext<?> createWriterContext() {
|
|
||||||
return (X4OWriterContext<?>)super.createWriter();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,7 +121,7 @@
|
||||||
<target>
|
<target>
|
||||||
<property name="coredir" value="${basedir}/../../x4o-driver/src/main/resources/META-INF"/>
|
<property name="coredir" value="${basedir}/../../x4o-driver/src/main/resources/META-INF"/>
|
||||||
<taskdef name="writeLanguageSchema" classname="org.x4o.plugin.ant.X4OWriteLanguageSchemaTask" classpathref="maven.plugin.classpath"/>
|
<taskdef name="writeLanguageSchema" classname="org.x4o.plugin.ant.X4OWriteLanguageSchemaTask" classpathref="maven.plugin.classpath"/>
|
||||||
<writeLanguageSchema destdir="${coredir}/cel" languageName="eld"/>
|
<writeLanguageSchema destdir="${coredir}/eld" languageName="eld"/>
|
||||||
</target>
|
</target>
|
||||||
</configuration>
|
</configuration>
|
||||||
<goals>
|
<goals>
|
||||||
|
|
Loading…
Reference in a new issue