X-Git-Url: http://sraa.de/git/?a=blobdiff_plain;f=dol%2Fsrc%2Fdol%2Fhelper%2Fflattener%2FMappingFlattener.java;fp=dol%2Fsrc%2Fdol%2Fhelper%2Fflattener%2FMappingFlattener.java;h=19ae0e73a0e40cf19cc780b9df4198b459112c9b;hb=8c411cf24ed0eb889191aaeafd8fa1e69081df42;hp=0000000000000000000000000000000000000000;hpb=dea7a4fb1ed110d3ce6e6d9255103d724bd66c0e;p=jump.git diff --git a/dol/src/dol/helper/flattener/MappingFlattener.java b/dol/src/dol/helper/flattener/MappingFlattener.java new file mode 100644 index 0000000..19ae0e7 --- /dev/null +++ b/dol/src/dol/helper/flattener/MappingFlattener.java @@ -0,0 +1,156 @@ +/* $Id: MappingFlattener.java 1 2010-02-24 13:03:05Z haidw $ */ +package dol.helper.flattener; + +import java.util.List; + +import org.jdom.Element; + +/** + * + */ +public class MappingFlattener extends FlattenerHelper { + + /** + * Constructor. + * + * @param classname class name of the generated class + */ + public MappingFlattener(String classname) { + super(classname); + } + + public String processElement(Element element) + throws RuntimeException { + + String string = ""; + + if (element.getName().equalsIgnoreCase("binding")) { + _generateElement = false; + string = generateBinding(element); + } + else if (element.getName().equalsIgnoreCase("path")) { + _generateElement = false; + string = generatePath(element); + } + else if (element.getName().equalsIgnoreCase("schedule")) { + _generateElement = false; + string = generateSchedule(element); + } + + return string; + } + + /** + * + */ + @SuppressWarnings("unchecked") + protected String generatePath(Element element) { + String attributes[] = {"name"}; + String sourceCode = generateElement(element, attributes, false); + + //add origin and target elements + for (Element childElement : (List)element.getChildren()) { + if (childElement.getName().equalsIgnoreCase("origin") + || childElement.getName().equalsIgnoreCase("target")) { + sourceCode += generateOriginOrTarget(childElement); + } + else if (childElement.getName().equalsIgnoreCase("resource")) { + String rAttributes[] = {"name"}; + increaseXmlIndent(); + sourceCode += generateElement(childElement,rAttributes, false); + sourceCode += _indent + + "System.out.println(\"" + _xmlIndent + "\");\n"; + decreaseXmlIndent(); + } + else if (childElement.getName().equalsIgnoreCase("buffer")) { + String bAttributes[] = {"name"}; + increaseXmlIndent(); + sourceCode += generateElement(childElement,bAttributes, false); + sourceCode += _indent + + "System.out.println(\"" + _xmlIndent + "\");\n"; + decreaseXmlIndent(); + } + } + sourceCode += _indent + "System.out.println(\"\");\n"; + return sourceCode; + } + + /** + * + */ + @SuppressWarnings("unchecked") + protected String generateSchedule(Element element) { + String attributes[] = {"name", "type"}; + String sourceCode = generateElement(element, attributes, false); + + //add origin and target elements + + for (Element childElement : (List)element.getChildren()) { + if (childElement.getName().equalsIgnoreCase("origin")) { + sourceCode += generateOriginOrTarget(childElement); + } + else if (childElement.getName().equalsIgnoreCase("resource")) { + String rAttributes[] = {"name"}; + increaseXmlIndent(); + sourceCode += generateElement(childElement,rAttributes, false); + sourceCode += _indent + + "System.out.println(\"" + _xmlIndent + "\");\n"; + decreaseXmlIndent(); + } + } + sourceCode += _indent + "System.out.println(\"\");\n"; + return sourceCode; + } + + /** + * + */ + @SuppressWarnings("unchecked") + protected String generateBinding(Element element) { + String attributes[] = {"name", "type"}; + String sourceCode = generateElement(element, attributes, false); + + //add origin and target elements + for (Element childElement : (List)element.getChildren()) { + if (childElement.getName().equalsIgnoreCase("origin") + || childElement.getName().equalsIgnoreCase("target")) { + sourceCode += generateOriginOrTarget(childElement); + } + } + sourceCode += _indent + "System.out.println(\"\");\n"; + return sourceCode; + } + + /** + * + */ + @SuppressWarnings("unchecked") + protected String generateOriginOrTarget(Element element) { + String attributes[] = {"name"}; + increaseXmlIndent(); + String sourceCode = generateElement(element, attributes, false); + + //add configuration elements + for (Element childElement : (List)element.getChildren()) { + if (childElement.getName().equalsIgnoreCase(_xt.getConfigurationTag())) { + sourceCode += generateConfiguration(childElement); + } + } + + sourceCode += _indent + "System.out.println(\"" + _xmlIndent + "\");\n"; + decreaseXmlIndent(); + + return sourceCode; + } + + protected String generateConfiguration(Element element) { + String attributes[] = {"name", "value"}; + increaseXmlIndent(); + String sourceCode = generateElement(element, attributes, true); + decreaseXmlIndent(); + return sourceCode; + } + + +}