Converted to X4ODriver language base and prepared for write support.
This commit is contained in:
parent
6f4eca935e
commit
f2844c61f2
118 changed files with 4370 additions and 2411 deletions
|
|
@ -58,7 +58,7 @@ public class EldDocGenerator {
|
|||
writer.writeOverviewNamespace(basePath, context);
|
||||
writer.writeOverviewTree(basePath, context);
|
||||
|
||||
for (ElementLanguageModule mod:context.getElementLanguageModules()) {
|
||||
for (ElementLanguageModule mod:context.getLanguage().getElementLanguageModules()) {
|
||||
|
||||
writer.writeOverviewModule(basePath, mod);
|
||||
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ public class EldDocHtmlWriter {
|
|||
public void writeIndex(File basePath,ElementLanguage context) throws IOException {
|
||||
PrintWriter pw = createPrintWriter(basePath,"index.html");
|
||||
try {
|
||||
String title = context.getLanguageConfiguration().getLanguage()+" "+context.getLanguageConfiguration().getLanguageVersion()+" ELD";
|
||||
String title = context.getLanguage().getLanguageName()+" "+context.getLanguage().getLanguageVersion()+" ELD";
|
||||
printHeader(pw,"Index ("+title+")","");
|
||||
printPageIndexTitle(pw,title,null,null);
|
||||
|
||||
|
|
@ -149,7 +149,7 @@ public class EldDocHtmlWriter {
|
|||
int eleConfigs = 0;
|
||||
int elements = 0;
|
||||
int namespaces = 0;
|
||||
for (ElementLanguageModule mod:context.getElementLanguageModules()) {
|
||||
for (ElementLanguageModule mod:context.getLanguage().getElementLanguageModules()) {
|
||||
attrHandlers += mod.getElementAttributeHandlers().size();
|
||||
bindHandlers += mod.getElementBindingHandlers().size();
|
||||
interFaces += mod.getElementInterfaces().size();
|
||||
|
|
@ -162,9 +162,9 @@ public class EldDocHtmlWriter {
|
|||
|
||||
pw.print("<p>Welcome to the EldDocs</p>");
|
||||
printTableStart(pw,"Language Stats");
|
||||
printTableRowSummary(pw,"Language:",""+context.getLanguageConfiguration().getLanguage());
|
||||
printTableRowSummary(pw,"LanguageVersion:",""+context.getLanguageConfiguration().getLanguageVersion());
|
||||
printTableRowSummary(pw,"Modules:",""+context.getElementLanguageModules().size());
|
||||
printTableRowSummary(pw,"Language:",""+context.getLanguage().getLanguageName());
|
||||
printTableRowSummary(pw,"LanguageVersion:",""+context.getLanguage().getLanguageVersion());
|
||||
printTableRowSummary(pw,"Modules:",""+context.getLanguage().getElementLanguageModules().size());
|
||||
printTableRowSummary(pw,"Namespaces:",""+namespaces);
|
||||
printTableRowSummary(pw,"Elements:",""+elements);
|
||||
printTableRowSummary(pw,"ElementInterfaces:",""+interFaces);
|
||||
|
|
@ -184,11 +184,11 @@ public class EldDocHtmlWriter {
|
|||
public void writeOverviewModule(File basePath,ElementLanguage context) throws IOException {
|
||||
PrintWriter pw = createPrintWriter(basePath,"module-overview.html");
|
||||
try {
|
||||
String title = context.getLanguageConfiguration().getLanguage()+" "+context.getLanguageConfiguration().getLanguageVersion()+" ELD";
|
||||
String title = context.getLanguage().getLanguageName()+" "+context.getLanguage().getLanguageVersion()+" ELD";
|
||||
printHeader(pw,"Overview Modules ("+title+")","");
|
||||
printPageIndexTitle(pw,title,null,null);
|
||||
printTableStart(pw,"Modules");
|
||||
List<ElementLanguageModule> mods = context.getElementLanguageModules();
|
||||
List<ElementLanguageModule> mods = context.getLanguage().getElementLanguageModules();
|
||||
Collections.sort(mods,new ElementLanguageModuleComparator());
|
||||
for (ElementLanguageModule mod:mods) {
|
||||
printTableRowOverview(pw,toSafeUri(mod.getId())+"/index.html",mod.getId(),mod.getName());
|
||||
|
|
@ -206,10 +206,10 @@ public class EldDocHtmlWriter {
|
|||
PrintWriter pw = createPrintWriter(basePath,"namespace-overview.html");
|
||||
String pathPrefix = "";
|
||||
try {
|
||||
String title = context.getLanguageConfiguration().getLanguage()+" "+context.getLanguageConfiguration().getLanguageVersion()+" ELD";
|
||||
String title = context.getLanguage().getLanguageName()+" "+context.getLanguage().getLanguageVersion()+" ELD";
|
||||
printHeader(pw,"Overview Namespace("+title+")",pathPrefix);
|
||||
printPageIndexTitle(pw,title,null,null);
|
||||
List<ElementLanguageModule> mods = context.getElementLanguageModules();
|
||||
List<ElementLanguageModule> mods = context.getLanguage().getElementLanguageModules();
|
||||
Collections.sort(mods,new ElementLanguageModuleComparator());
|
||||
for (ElementLanguageModule mod:mods) {
|
||||
printNamespaces(pw,mod.getElementNamespaceContexts(),pathPrefix,mod);
|
||||
|
|
@ -226,12 +226,12 @@ public class EldDocHtmlWriter {
|
|||
PrintWriter pw = createPrintWriter(basePath,"tree-overview.html");
|
||||
String pathPrefix = "";
|
||||
try {
|
||||
String title = context.getLanguageConfiguration().getLanguage()+" "+context.getLanguageConfiguration().getLanguageVersion()+" ELD";
|
||||
String title = context.getLanguage().getLanguageName()+" "+context.getLanguage().getLanguageVersion()+" ELD";
|
||||
printHeader(pw,"Overview Tree ("+title+")",pathPrefix);
|
||||
printPageIndexTitle(pw,title,null,null);
|
||||
|
||||
List<TreeNode> rootNodes = new ArrayList<TreeNode>(3);
|
||||
for (ElementLanguageModule mod:context.getElementLanguageModules()) {
|
||||
for (ElementLanguageModule mod:context.getLanguage().getElementLanguageModules()) {
|
||||
for (ElementNamespaceContext ns:mod.getElementNamespaceContexts()) {
|
||||
if (ns.getLanguageRoot()!=null && ns.getLanguageRoot()) {
|
||||
// found language root elements.
|
||||
|
|
@ -298,7 +298,7 @@ public class EldDocHtmlWriter {
|
|||
if (node.indent>20) {
|
||||
return result; // hard fail limit
|
||||
}
|
||||
for (ElementLanguageModule mod:node.context.getElementLanguageModules()) {
|
||||
for (ElementLanguageModule mod:node.context.getLanguage().getElementLanguageModules()) {
|
||||
for (ElementNamespaceContext ns:mod.getElementNamespaceContexts()) {
|
||||
for (ElementClass ec:ns.getElementClasses()) {
|
||||
TreeNode n=null;
|
||||
|
|
@ -316,7 +316,7 @@ public class EldDocHtmlWriter {
|
|||
continue;
|
||||
}
|
||||
// Check interfaces of parent , and see if child tag is there.
|
||||
for (ElementInterface ei:node.context.findElementInterfaces(ec.getObjectClass())) {
|
||||
for (ElementInterface ei:node.context.getLanguage().findElementInterfaces(ec.getObjectClass())) {
|
||||
List<String> eiTags = ei.getElementParents(node.namespace.getUri());
|
||||
if (eiTags!=null && eiTags.contains(node.elementClass.getTag())) {
|
||||
n = new TreeNode();
|
||||
|
|
@ -333,7 +333,7 @@ public class EldDocHtmlWriter {
|
|||
if (node.elementClass.getObjectClass()==null) {
|
||||
continue;
|
||||
}
|
||||
List<ElementBindingHandler> binds = node.context.findElementBindingHandlers(node.elementClass.getObjectClass(), ec.getObjectClass());
|
||||
List<ElementBindingHandler> binds = node.context.getLanguage().findElementBindingHandlers(node.elementClass.getObjectClass(), ec.getObjectClass());
|
||||
if (binds.isEmpty()==false) {
|
||||
n = new TreeNode();
|
||||
n.context=node.context;
|
||||
|
|
@ -370,7 +370,7 @@ public class EldDocHtmlWriter {
|
|||
private List<TreeNode> findParents(TreeNode node) {
|
||||
List<TreeNode> result = new ArrayList<TreeNode>(10);
|
||||
TreeNode n=null;
|
||||
for (ElementLanguageModule mod:node.context.getElementLanguageModules()) {
|
||||
for (ElementLanguageModule mod:node.context.getLanguage().getElementLanguageModules()) {
|
||||
for (ElementNamespaceContext ns:mod.getElementNamespaceContexts()) {
|
||||
|
||||
List<String> tags = node.elementClass.getElementParents(ns.getUri());
|
||||
|
|
@ -392,7 +392,7 @@ public class EldDocHtmlWriter {
|
|||
|
||||
// Check interfaces of parent , and see if child tag is there.
|
||||
if (node.elementClass.getObjectClass()!=null) {
|
||||
for (ElementInterface ei:node.context.findElementInterfaces(node.elementClass.getObjectClass())) {
|
||||
for (ElementInterface ei:node.context.getLanguage().findElementInterfaces(node.elementClass.getObjectClass())) {
|
||||
List<String> eiTags = ei.getElementParents(ns.getUri());
|
||||
if (eiTags!=null && eiTags.contains(ec.getTag())) {
|
||||
n = new TreeNode();
|
||||
|
|
@ -413,7 +413,7 @@ public class EldDocHtmlWriter {
|
|||
if (node.elementClass.getObjectClass()==null) {
|
||||
continue;
|
||||
}
|
||||
List<ElementBindingHandler> binds = node.context.findElementBindingHandlers(ec.getObjectClass(),node.elementClass.getObjectClass());
|
||||
List<ElementBindingHandler> binds = node.context.getLanguage().findElementBindingHandlers(ec.getObjectClass(),node.elementClass.getObjectClass());
|
||||
if (binds.isEmpty()==false) {
|
||||
n = new TreeNode();
|
||||
n.context=node.context;
|
||||
|
|
|
|||
|
|
@ -28,9 +28,8 @@ import java.util.Arrays;
|
|||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.x4o.xml.core.X4OParserSupport;
|
||||
import org.x4o.xml.core.X4OParserSupportException;
|
||||
import org.x4o.xml.core.config.X4OLanguageClassLoader;
|
||||
import org.x4o.xml.X4ODriver;
|
||||
import org.x4o.xml.X4ODriverManager;
|
||||
import org.x4o.xml.element.ElementLanguage;
|
||||
import org.x4o.xml.element.ElementException;
|
||||
|
||||
|
|
@ -40,21 +39,21 @@ import org.x4o.xml.element.ElementException;
|
|||
* @author Willem Cazander
|
||||
* @version 1.0 Aug 22, 2012
|
||||
*/
|
||||
public class X4OLanguageEldDocWriter {
|
||||
public class X4ODocWriterExecutor {
|
||||
|
||||
private Class<?> languageParserSupport = null;
|
||||
private String language = null;
|
||||
private String languageVersion = null;
|
||||
private File basePath;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
static public void main(String argu[]) {
|
||||
X4OLanguageEldDocWriter languageSchema = new X4OLanguageEldDocWriter();
|
||||
X4ODocWriterExecutor languageSchema = new X4ODocWriterExecutor();
|
||||
List<String> arguList = Arrays.asList(argu);
|
||||
Iterator<String> arguIterator = arguList.iterator();
|
||||
while (arguIterator.hasNext()) {
|
||||
String arg = arguIterator.next();
|
||||
if ("-path".equals(arg)) {
|
||||
if ("-path".equals(arg) || "-p".equals(arg)) {
|
||||
if (arguIterator.hasNext()==false) {
|
||||
System.out.println("No argument for -path given.");
|
||||
System.out.println("No argument for "+arg+" given.");
|
||||
System.exit(1);
|
||||
return;
|
||||
}
|
||||
|
|
@ -67,26 +66,20 @@ public class X4OLanguageEldDocWriter {
|
|||
languageSchema.setBasePath(schemaBasePath);
|
||||
continue;
|
||||
}
|
||||
if ("-class".equals(arg)) {
|
||||
if ("-language".equals(arg) || "-l".equals(arg)) {
|
||||
if (arguIterator.hasNext()==false) {
|
||||
System.out.println("No argument for -class given.");
|
||||
System.exit(1);
|
||||
return;
|
||||
}
|
||||
String apiClass = arguIterator.next();
|
||||
try {
|
||||
languageSchema.setLanguageParserSupport((Class<X4OParserSupport>) X4OLanguageClassLoader.loadClass(apiClass));
|
||||
} catch (ClassNotFoundException e) {
|
||||
System.out.println("Schema api class is not found: "+apiClass);
|
||||
System.out.println("No argument for "+arg+" given.");
|
||||
System.exit(1);
|
||||
return;
|
||||
}
|
||||
String languageName = arguIterator.next();
|
||||
languageSchema.setLanguage(languageName);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
try {
|
||||
languageSchema.execute();
|
||||
} catch (X4OParserSupportException e) {
|
||||
} catch (ElementException e) {
|
||||
System.out.println("Error while schema writing: "+e.getMessage());
|
||||
e.printStackTrace();
|
||||
System.exit(1);
|
||||
|
|
@ -94,37 +87,41 @@ public class X4OLanguageEldDocWriter {
|
|||
}
|
||||
}
|
||||
|
||||
public void execute() throws X4OParserSupportException {
|
||||
try {
|
||||
// Load the support language context
|
||||
X4OParserSupport languageSupport = (X4OParserSupport)getLanguageParserSupport().newInstance();
|
||||
ElementLanguage context = languageSupport.loadElementLanguageSupport();
|
||||
public void execute() throws ElementException {
|
||||
X4ODriver<?> driver = X4ODriverManager.getX4ODriver(getLanguage());
|
||||
ElementLanguage context = driver.createLanguageContext(getLanguageVersion());
|
||||
|
||||
// Start doc generator
|
||||
EldDocGenerator generator = new EldDocGenerator(context);
|
||||
generator.writeDoc(getBasePath());
|
||||
|
||||
} catch (InstantiationException e) {
|
||||
throw new X4OParserSupportException(e);
|
||||
} catch (IllegalAccessException e) {
|
||||
throw new X4OParserSupportException(e);
|
||||
} catch (ElementException e) {
|
||||
throw new X4OParserSupportException(e);
|
||||
}
|
||||
// Start doc generator
|
||||
EldDocGenerator generator = new EldDocGenerator(context);
|
||||
generator.writeDoc(getBasePath());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the languageParserSupport
|
||||
* @return the languageVersion
|
||||
*/
|
||||
public Class<?> getLanguageParserSupport() {
|
||||
return languageParserSupport;
|
||||
public String getLanguageVersion() {
|
||||
return languageVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param languageParserSupport the languageParserSupport to set
|
||||
* @param languageVersion the languageVersion to set
|
||||
*/
|
||||
public void setLanguageParserSupport(Class<?> languageParserSupport) {
|
||||
this.languageParserSupport = languageParserSupport;
|
||||
public void setLanguageVersion(String languageVersion) {
|
||||
this.languageVersion = languageVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the language
|
||||
*/
|
||||
public String getLanguage() {
|
||||
return language;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param language the language to set
|
||||
*/
|
||||
public void setLanguage(String language) {
|
||||
this.language = language;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -25,11 +25,11 @@ package org.x4o.xml.eld.doc;
|
|||
|
||||
import java.io.File;
|
||||
|
||||
import org.x4o.xml.eld.EldParserSupport;
|
||||
import org.x4o.xml.eld.EldParserSupportCore;
|
||||
import org.x4o.xml.test.TestParserSupport;
|
||||
import org.x4o.xml.test.swixml.SwiXmlParserSupport2;
|
||||
import org.x4o.xml.test.swixml.SwiXmlParserSupport3;
|
||||
import org.x4o.xml.eld.CelDriver;
|
||||
import org.x4o.xml.eld.EldDriver;
|
||||
import org.x4o.xml.test.TestDriver;
|
||||
import org.x4o.xml.test.swixml.SwiXmlDriver;
|
||||
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
|
|
@ -54,42 +54,44 @@ public class EldDocTest extends TestCase {
|
|||
}
|
||||
|
||||
public void testCelDoc() throws Exception {
|
||||
X4OLanguageEldDocWriter writer = new X4OLanguageEldDocWriter();
|
||||
X4ODocWriterExecutor writer = new X4ODocWriterExecutor();
|
||||
writer.setBasePath(getTempPath("junit-cel"));
|
||||
writer.setLanguageParserSupport(EldParserSupportCore.class);
|
||||
writer.setLanguage(CelDriver.LANGUAGE_NAME);
|
||||
writer.execute();
|
||||
}
|
||||
|
||||
public void testEldDoc() throws Exception {
|
||||
X4OLanguageEldDocWriter writer = new X4OLanguageEldDocWriter();
|
||||
X4ODocWriterExecutor writer = new X4ODocWriterExecutor();
|
||||
writer.setBasePath(getTempPath("junit-eld"));
|
||||
writer.setLanguageParserSupport(EldParserSupport.class);
|
||||
writer.setLanguage(EldDriver.LANGUAGE_NAME);
|
||||
writer.execute();
|
||||
}
|
||||
|
||||
public void testUnitDoc() throws Exception {
|
||||
X4OLanguageEldDocWriter writer = new X4OLanguageEldDocWriter();
|
||||
X4ODocWriterExecutor writer = new X4ODocWriterExecutor();
|
||||
writer.setBasePath(getTempPath("junit-test"));
|
||||
writer.setLanguageParserSupport(TestParserSupport.class);
|
||||
writer.setLanguage(TestDriver.LANGUAGE_NAME);
|
||||
writer.execute();
|
||||
}
|
||||
|
||||
public void testSwiXml2Doc() throws Exception {
|
||||
X4OLanguageEldDocWriter writer = new X4OLanguageEldDocWriter();
|
||||
X4ODocWriterExecutor writer = new X4ODocWriterExecutor();
|
||||
writer.setBasePath(getTempPath("junit-swixml2"));
|
||||
writer.setLanguageParserSupport(SwiXmlParserSupport2.class);
|
||||
writer.setLanguage(SwiXmlDriver.LANGUAGE_NAME);
|
||||
writer.setLanguageVersion(SwiXmlDriver.LANGUAGE_VERSION_2);
|
||||
writer.execute();
|
||||
}
|
||||
|
||||
public void testSwiXml3Doc() throws Exception {
|
||||
X4OLanguageEldDocWriter writer = new X4OLanguageEldDocWriter();
|
||||
X4ODocWriterExecutor writer = new X4ODocWriterExecutor();
|
||||
writer.setBasePath(getTempPath("junit-swixml3"));
|
||||
writer.setLanguageParserSupport(SwiXmlParserSupport3.class);
|
||||
writer.setLanguage(SwiXmlDriver.LANGUAGE_NAME);
|
||||
writer.setLanguageVersion(SwiXmlDriver.LANGUAGE_VERSION_3);
|
||||
writer.execute();
|
||||
}
|
||||
|
||||
|
||||
public void testEldDocMain() throws Exception {
|
||||
X4OLanguageEldDocWriter.main(new String[] {"-path",getTempPath("junit-test-main").getAbsolutePath(),"-class",EldParserSupport.class.getName()});
|
||||
X4ODocWriterExecutor.main(new String[] {"-p",getTempPath("junit-test-main").getAbsolutePath(),"-l",EldDriver.LANGUAGE_NAME});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue