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 }