gvsig-tools / org.gvsig.tools / library / trunk / org.gvsig.tools / org.gvsig.tools.swing / org.gvsig.tools.swing.impl / src / main / java / org / gvsig / tools / swing / impl / dynclass / DefaultModeler.java @ 1405
History | View | Annotate | Download (1.49 KB)
1 | 1405 | jjdelcerro | package org.gvsig.tools.swing.impl.dynclass; |
---|---|---|---|
2 | |||
3 | import java.io.File; |
||
4 | import java.io.InputStream; |
||
5 | import java.nio.charset.Charset; |
||
6 | import java.util.Collection; |
||
7 | import java.util.HashMap; |
||
8 | import java.util.Map; |
||
9 | import org.apache.commons.io.FileUtils; |
||
10 | import org.apache.commons.io.IOUtils; |
||
11 | import org.gvsig.tools.ToolsLocator; |
||
12 | import org.gvsig.tools.dynobject.DynClass; |
||
13 | import org.gvsig.tools.dynobject.DynObjectManager; |
||
14 | import org.slf4j.Logger; |
||
15 | import org.slf4j.LoggerFactory; |
||
16 | |||
17 | public class DefaultModeler { |
||
18 | |||
19 | private static final Logger logger = LoggerFactory.getLogger(DefaultModeler.class); |
||
20 | |||
21 | private final Map<String, DynClass> dynClasses; |
||
22 | |||
23 | public DefaultModeler() {
|
||
24 | this.dynClasses = new HashMap<>(); |
||
25 | } |
||
26 | |||
27 | public void loadModel(File model) { |
||
28 | DynObjectManager dynObjectManager = ToolsLocator.getDynObjectManager(); |
||
29 | try {
|
||
30 | String xml = FileUtils.readFileToString(model);
|
||
31 | InputStream is = IOUtils.toInputStream(xml, Charset.forName("UTF-8")); |
||
32 | Map<String, DynClass> dynClasses = dynObjectManager.importDynClassDefinitions(is, this.getClass().getClassLoader()); |
||
33 | for (DynClass aDynClass : dynClasses.values()) {
|
||
34 | this.dynClasses.put(aDynClass.getName(), aDynClass);
|
||
35 | } |
||
36 | } catch (Exception ex) { |
||
37 | logger.warn("Can't load model from '" + model.getAbsolutePath() + "'.", ex); |
||
38 | } |
||
39 | } |
||
40 | |||
41 | public Collection<DynClass> getClasses() { |
||
42 | return this.dynClasses.values(); |
||
43 | } |
||
44 | } |