use of org.walkmod.conf.entities.ReaderConfig in project walkmod-core by walkmod.
the class AbstractChainConfigurationProvider method addDefaultReaderConfig.
public void addDefaultReaderConfig(ChainConfig ac) {
ReaderConfig readerConfig = new ReaderConfig();
readerConfig.setPath(null);
readerConfig.setType(null);
ac.setReaderConfig(readerConfig);
}
use of org.walkmod.conf.entities.ReaderConfig in project walkmod-core by walkmod.
the class AbstractXMLConfigurationAction method createChainElement.
public Element createChainElement(ChainConfig chainCfg) {
Document document = provider.getDocument();
Element element = document.createElement("chain");
String name = chainCfg.getName();
if (name != null && !"".equals(name)) {
element.setAttribute("name", chainCfg.getName());
}
ReaderConfig rConfig = chainCfg.getReaderConfig();
if (rConfig != null) {
if (rConfig.getType() != null || rConfig.getPath() != null || rConfig.getIncludes() != null || rConfig.getExcludes() != null || rConfig.getParameters() != null) {
Element reader = document.createElement("reader");
createReaderOrWriterContent(reader, rConfig.getPath(), rConfig.getType(), rConfig.getParameters(), rConfig.getIncludes(), rConfig.getExcludes());
element.appendChild(reader);
}
}
WalkerConfig wConfig = chainCfg.getWalkerConfig();
if (wConfig != null) {
// (param*, parser?, transformations)
Map<String, Object> params = wConfig.getParams();
List<Element> result = createTransformationList(wConfig.getTransformations());
if (params == null && (wConfig.getType() == null || "".equals(wConfig.getType()))) {
if (result != null) {
for (Element transformationElement : result) {
element.appendChild(transformationElement);
}
}
} else {
Element walker = document.createElement("walker");
String type = wConfig.getType();
if (type != null && !"".equals(type)) {
walker.setAttribute("type", type);
}
List<Element> paramListEment = createParamsElement(params);
if (paramListEment != null) {
for (Element param : paramListEment) {
walker.appendChild(param);
}
}
Element transformationList = document.createElement("transformations");
if (result != null) {
for (Element transformationElement : result) {
transformationList.appendChild(transformationElement);
}
}
walker.appendChild(transformationList);
element.appendChild(walker);
}
}
WriterConfig writerConfig = chainCfg.getWriterConfig();
if (writerConfig != null) {
if (writerConfig.getType() != null || writerConfig.getPath() != null || writerConfig.getExcludes() != null || writerConfig.getIncludes() != null || writerConfig.getParams() != null) {
Element writer = document.createElement("writer");
createReaderOrWriterContent(writer, writerConfig.getPath(), writerConfig.getType(), writerConfig.getParams(), writerConfig.getIncludes(), writerConfig.getExcludes());
element.appendChild(writer);
}
}
return element;
}
use of org.walkmod.conf.entities.ReaderConfig in project walkmod-core by walkmod.
the class DefaultChainAdapter method prepare.
@Override
public void prepare() throws WalkModException {
setName(ac.getName());
ReaderConfig readerConfig = ac.getReaderConfig();
WriterConfig writerConfig = ac.getWriterConfig();
String modelName = readerConfig.getPath();
String modelType = readerConfig.getType();
ChainReader reader = readerConfig.getModelReader();
if (reader == null) {
try {
reader = (ChainReader) ac.getConfiguration().getBean(modelType, readerConfig.getParameters());
} catch (Exception e2) {
throw new WalkModException("The model " + modelName + ", whose type is " + modelType + "in the architecture " + getName() + " cannot be loaded ", e2);
}
}
readerConfig.setModelReader(reader);
reader.setPath(readerConfig.getPath());
reader.setExcludes(readerConfig.getExcludes());
reader.setIncludes(readerConfig.getIncludes());
try {
setResource(reader.read());
LOG.debug("Model " + modelName + " loaded");
} catch (Exception e2) {
throw new WalkModException("The model " + modelName + ", whose type is " + modelType + "in the architecture " + getName() + " cannot be read ", e2);
}
WalkerConfig wc = ac.getWalkerConfig();
ChainWalkerAdapter wa = new DefaultChainWalkerAdapter();
setWalkerAdapter(wa);
ChainWalker walker = wc.getWalker();
if (walker == null) {
walker = (ChainWalker) ac.getConfiguration().getBean(wc.getType(), wc.getParams());
}
wc.setWalker(walker);
wa.setWalker(walker);
wa.setWalkerConfig(wc);
wa.setArchitectureProxy(this);
wa.setWalkerInvocation(new DefaultChainWalkerInvocation());
ChainWriter writer = writerConfig.getModelWriter();
if (writer == null) {
try {
writer = (ChainWriter) ac.getConfiguration().getBean(writerConfig.getType(), writerConfig.getParams());
} catch (Exception e2) {
throw new WalkModException("The writer " + ", whose type is " + writerConfig.getType() + "in the architecture " + getName() + " cannot be read ", e2);
}
}
writerConfig.setModelWriter(writer);
writer.setPath(writerConfig.getPath());
setChainWriter(writer);
wa.prepare();
ai.init(this);
}
use of org.walkmod.conf.entities.ReaderConfig in project walkmod-core by walkmod.
the class LanguageConfigurationProviderTest method testNullOverwriting.
@Test
public void testNullOverwriting() {
LanguageConfigurationProvider provider = new LanguageConfigurationProvider();
Configuration conf = new ConfigurationImpl();
ChainConfig cc = new ChainConfigImpl();
cc.setName("test-chain");
ReaderConfig reader = new ReaderConfig();
WalkerConfig walker = new WalkerConfigImpl();
TransformationConfig transformation = new TransformationConfigImpl();
transformation.isMergeable(true);
List<TransformationConfig> transf = new LinkedList<TransformationConfig>();
transf.add(transformation);
walker.setParserConfig(new ParserConfigImpl());
walker.setTransformations(transf);
WriterConfig writer = new WriterConfigImpl();
cc.setReaderConfig(reader);
cc.setWalkerConfig(walker);
cc.setWriterConfig(writer);
conf.addChainConfig(cc);
provider.init(conf);
provider.load();
Assert.assertNotNull(reader.getPath());
Assert.assertNotNull(reader.getType());
Assert.assertNotNull(walker.getType());
Assert.assertNotNull(walker.getParserConfig().getType());
Assert.assertNotNull(writer.getPath());
Assert.assertNotNull(writer.getType());
Assert.assertNotNull(transformation.getMergePolicy());
Assert.assertNotNull(conf.getMergePolicies());
Collection<MergePolicyConfig> mergec = conf.getMergePolicies();
Assert.assertEquals(1, mergec.size());
MergePolicyConfig mpc = mergec.iterator().next();
Assert.assertNotNull(mpc.getDefaultObjectPolicy());
Assert.assertNotNull(mpc.getDefaultTypePolicy());
Map<String, String> entries = mpc.getPolicyEntries();
Assert.assertEquals(2, entries.size());
}
Aggregations