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
|
|
@ -25,7 +25,7 @@ package org.x4o.xml.meta;
|
|||
|
||||
import org.x4o.xml.core.config.X4OLanguageLoader;
|
||||
import org.x4o.xml.core.config.X4OLanguageLoaderException;
|
||||
import org.x4o.xml.element.ElementLanguage;
|
||||
import org.x4o.xml.core.config.X4OLanguageLocal;
|
||||
import org.x4o.xml.element.ElementLanguageModule;
|
||||
import org.x4o.xml.element.ElementLanguageModuleLoaderException;
|
||||
import org.x4o.xml.element.ElementLanguageModuleLoaderSibling;
|
||||
|
|
@ -46,12 +46,12 @@ public class MetaLanguageSiblingLoader implements ElementLanguageModuleLoaderSib
|
|||
|
||||
/**
|
||||
* Loads an ElementLanguageModule.
|
||||
* @param elementLanguage The ElementLanguage to load for.
|
||||
* @param language The ElementLanguage to load for.
|
||||
* @param elementLanguageModule The ElementLanguageModule to load into.
|
||||
* @throws ElementLanguageModuleLoaderException Is thrown when meta language could not be loaded.
|
||||
* @see org.x4o.xml.element.ElementLanguageModuleLoader#loadLanguageModule(org.x4o.xml.element.ElementLanguage, org.x4o.xml.element.ElementLanguageModule)
|
||||
*/
|
||||
public void loadLanguageModule(ElementLanguage elementLanguage,ElementLanguageModule elementLanguageModule) throws ElementLanguageModuleLoaderException {
|
||||
public void loadLanguageModule(X4OLanguageLocal languageLocal,ElementLanguageModule elementLanguageModule) throws ElementLanguageModuleLoaderException {
|
||||
elementLanguageModule.setId(META_LANGUAGE);
|
||||
elementLanguageModule.setName(META_LANGUAGE);
|
||||
elementLanguageModule.setProviderName(MetaLanguageSiblingLoader.class.getSimpleName());
|
||||
|
|
@ -65,9 +65,9 @@ public class MetaLanguageSiblingLoader implements ElementLanguageModuleLoaderSib
|
|||
* @throws X4OLanguageLoaderException
|
||||
* @see org.x4o.xml.element.ElementLanguageModuleLoaderSibling#loadLanguageSibling(org.x4o.xml.element.ElementLanguage, org.x4o.xml.core.config.X4OLanguageLoader)
|
||||
*/
|
||||
public void loadLanguageSibling(ElementLanguage elementLanguage,X4OLanguageLoader loader) throws X4OLanguageLoaderException {
|
||||
public void loadLanguageSibling(X4OLanguageLocal languageLocal,X4OLanguageLoader loader) throws X4OLanguageLoaderException {
|
||||
|
||||
// Load the meta language.
|
||||
loader.loadLanguage(elementLanguage, META_LANGUAGE, META_LANGUAGE_VERSION);
|
||||
loader.loadLanguage(languageLocal, META_LANGUAGE, META_LANGUAGE_VERSION);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,9 @@ package org.x4o.xml.meta;
|
|||
import java.util.Date;
|
||||
|
||||
import org.x4o.xml.core.config.X4OLanguagePropertyKeys;
|
||||
import org.x4o.xml.meta.test.MTestParser;
|
||||
import org.x4o.xml.element.ElementLanguage;
|
||||
import org.x4o.xml.io.X4OReaderContext;
|
||||
import org.x4o.xml.meta.test.MTestDriver;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
|
|
@ -39,38 +41,44 @@ import junit.framework.TestCase;
|
|||
public class ReferenceStoreTest extends TestCase {
|
||||
|
||||
public void testMetaGeneric() throws Exception {
|
||||
MTestParser parser = new MTestParser();
|
||||
parser.setProperty(X4OLanguagePropertyKeys.PHASE_SKIP_RELEASE, true);
|
||||
ElementLanguage context = null;
|
||||
MTestDriver driver = new MTestDriver();
|
||||
X4OReaderContext<?> reader = driver.createReaderContext();
|
||||
reader.setProperty(X4OLanguagePropertyKeys.PHASE_SKIP_RELEASE, true);
|
||||
try {
|
||||
parser.parseResource("tests/meta-generic.xml");
|
||||
assertEquals(Date.class.getName(),parser.getElementLanguage().getRootElement().getChilderen().get(0).getElementObject().getClass().getName());
|
||||
context = reader.readResourceContext("tests/meta-generic.xml");
|
||||
assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(0).getElementObject().getClass().getName());
|
||||
} finally {
|
||||
parser.doReleasePhaseManual();
|
||||
reader.releaseContext(context);
|
||||
}
|
||||
}
|
||||
|
||||
public void testLoadClass() throws Exception {
|
||||
MTestParser parser = new MTestParser();
|
||||
parser.setProperty(X4OLanguagePropertyKeys.PHASE_SKIP_RELEASE, true);
|
||||
ElementLanguage context = null;
|
||||
MTestDriver driver = new MTestDriver();
|
||||
X4OReaderContext<?> reader = driver.createReaderContext();
|
||||
reader.setProperty(X4OLanguagePropertyKeys.PHASE_SKIP_RELEASE, true);
|
||||
try {
|
||||
parser.parseResource("tests/reference/store-ref.xml");
|
||||
assertEquals(Date.class.getName(),parser.getElementLanguage().getRootElement().getChilderen().get(0).getElementObject().getClass().getName());
|
||||
context = reader.readResourceContext("tests/reference/store-ref.xml");
|
||||
assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(0).getElementObject().getClass().getName());
|
||||
} finally {
|
||||
parser.doReleasePhaseManual();
|
||||
reader.releaseContext(context);
|
||||
}
|
||||
}
|
||||
|
||||
public void testStoreRef() throws Exception {
|
||||
MTestParser parser = new MTestParser();
|
||||
parser.setProperty(X4OLanguagePropertyKeys.PHASE_SKIP_RELEASE, true);
|
||||
ElementLanguage context = null;
|
||||
MTestDriver driver = new MTestDriver();
|
||||
X4OReaderContext<?> reader = driver.createReaderContext();
|
||||
reader.setProperty(X4OLanguagePropertyKeys.PHASE_SKIP_RELEASE, true);
|
||||
try {
|
||||
parser.parseResource("tests/reference/store-ref.xml");
|
||||
assertEquals(Date.class.getName(),parser.getElementLanguage().getRootElement().getChilderen().get(0).getElementObject().getClass().getName());
|
||||
assertEquals(Date.class.getName(),parser.getElementLanguage().getRootElement().getChilderen().get(1).getElementObject().getClass().getName());
|
||||
assertEquals(Date.class.getName(),parser.getElementLanguage().getRootElement().getChilderen().get(2).getElementObject().getClass().getName());
|
||||
assertEquals(Date.class.getName(),parser.getElementLanguage().getRootElement().getChilderen().get(3).getElementObject().getClass().getName());
|
||||
context = reader.readResourceContext("tests/reference/store-ref.xml");
|
||||
assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(0).getElementObject().getClass().getName());
|
||||
assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(1).getElementObject().getClass().getName());
|
||||
assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(2).getElementObject().getClass().getName());
|
||||
assertEquals(Date.class.getName(),context.getRootElement().getChilderen().get(3).getElementObject().getClass().getName());
|
||||
} finally {
|
||||
parser.doReleasePhaseManual();
|
||||
reader.releaseContext(context);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,21 +23,44 @@
|
|||
|
||||
package org.x4o.xml.meta.test;
|
||||
|
||||
import org.x4o.xml.core.X4ODriver;
|
||||
import org.x4o.xml.core.X4OParser;
|
||||
import org.x4o.xml.element.ElementLanguage;
|
||||
import org.x4o.xml.X4ODriver;
|
||||
import org.x4o.xml.X4ODriverManager;
|
||||
import org.x4o.xml.core.config.DefaultX4OLanguage;
|
||||
import org.x4o.xml.core.config.DefaultX4OLanguageConfiguration;
|
||||
import org.x4o.xml.core.config.X4OLanguage;
|
||||
import org.x4o.xml.core.phase.X4OPhaseManagerFactory;
|
||||
import org.x4o.xml.io.X4OReaderContext;
|
||||
import org.x4o.xml.io.X4OWriterContext;
|
||||
|
||||
public class MTestParser extends X4OParser {
|
||||
public class MTestDriver extends X4ODriver {
|
||||
|
||||
public MTestParser() {
|
||||
super("mtest");
|
||||
public static final String LANGUAGE_NAME = "mtest";
|
||||
public static final String[] LANGUAGE_VERSIONS = new String[]{X4ODriver.DEFAULT_LANGUAGE_VERSION};
|
||||
|
||||
@Override
|
||||
public String getLanguageName() {
|
||||
return LANGUAGE_NAME;
|
||||
}
|
||||
|
||||
public ElementLanguage getElementLanguage() {
|
||||
return getDriver().getElementLanguage();
|
||||
@Override
|
||||
public String[] getLanguageVersions() {
|
||||
return LANGUAGE_VERSIONS;
|
||||
}
|
||||
|
||||
public X4ODriver getDriver() {
|
||||
return super.getDriver();
|
||||
@Override
|
||||
public X4OLanguage buildLanguage(String version) {
|
||||
return new DefaultX4OLanguage(new DefaultX4OLanguageConfiguration(),X4OPhaseManagerFactory.createDefaultX4OPhaseManager(),getLanguageName(),getLanguageVersionDefault());
|
||||
}
|
||||
|
||||
static public MTestDriver getInstance() {
|
||||
return (MTestDriver)X4ODriverManager.getX4ODriver(LANGUAGE_NAME);
|
||||
}
|
||||
|
||||
public X4OReaderContext<?> createReaderContext() {
|
||||
return (X4OReaderContext<?>)super.createReader();
|
||||
}
|
||||
|
||||
public X4OWriterContext<?> createWriterContext() {
|
||||
return (X4OWriterContext<?>)super.createWriter();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue