Statistics
| Revision:

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
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
}