1 package net.sourceforge.xmlfit.reader; 2 3 import java.util.HashMap; 4 5 import net.sourceforge.xmlfit.configuration.Configuration; 6 7 import org.eclipse.emf.ecore.EObject; 8 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; 9 import org.openarchitectureware.workflow.WorkflowComponent; 10 import org.openarchitectureware.workflow.WorkflowContext; 11 import org.openarchitectureware.workflow.ast.parser.Location; 12 import org.openarchitectureware.workflow.container.CompositeComponent; 13 import org.openarchitectureware.workflow.issues.Issues; 14 import org.openarchitectureware.workflow.monitor.ProgressMonitor; 15 import org.openarchitectureware.xsd.XMLReaderImpl; 16 import org.openarchitectureware.xsd.XSDMetaModel; 17 18 public class DynamicXMLReader implements WorkflowComponent 19 { 20 21 private String name; 22 23 private CompositeComponent container; 24 25 private Location location; 26 27 private static XSDMetaModel metaModel; 28 29 private static Configuration configuration = Configuration.INSTANCE; 30 31 public XSDMetaModel getMetaModel() { 32 return metaModel; 33 } 34 35 public void setMetaModel(XSDMetaModel metaModel) { 36 DynamicXMLReader.metaModel = metaModel; 37 } 38 39 public static EObject loadModelFromXmlFile(String fileName) 40 { 41 XMLReaderImpl reader = new XMLReaderImpl(new ResourceSetImpl(), metaModel); 42 reader.setUri(configuration.getInputDirectory() + fileName); 43 reader.setUseDocumentRoot(false); 44 reader.getOptions().putAll(new HashMap<String, Object>()); 45 EObject model = reader.readXML(); 46 47 return model; 48 } 49 50 public void checkConfiguration(Issues issues) { 51 } 52 53 public String getComponentName() { 54 return name; 55 } 56 57 public CompositeComponent getContainer() { 58 return container; 59 } 60 61 public Location getLocation() { 62 return location; 63 } 64 65 public void invoke(WorkflowContext ctx, ProgressMonitor monitor, 66 Issues issues) { 67 } 68 69 public void setContainer(CompositeComponent container) { 70 this.container = container; 71 } 72 73 public void setLocation(Location location) { 74 this.location = location; 75 } 76 77 }