1 package com.bonevich.erj.app;
2
3 import com.bonevich.erj.model.Schema;
4
5 import ru.novosoft.mdf.ext.MDFOutermostPackage;
6
7 import java.io.File;
8 import java.io.OutputStream;
9 import java.io.InputStream;
10 import java.io.IOException;
11
12 import org.xml.sax.InputSource;
13
14 public final class ProjectModel extends ProjectComponent
15 {
16 //////////////////////////////////////////////////////////
17 // Constants
18 public static final String MODEL_EXTENSION = "." + XMI;
19 public static final String XMI_VERSION = "1.1";
20
21 //////////////////////////////////////////////////////////
22 // Attributes
23 private Schema _model;
24 private MDFOutermostPackage _repository;
25
26 //////////////////////////////////////////////////////////
27 // Constructors
28 public ProjectModel(Project project, Schema model)
29 {
30 super(project);
31 _model = model;
32 setType(XMI);
33 }
34
35 //////////////////////////////////////////////////////////
36 // Operations
37 public Schema getModel()
38 {
39 return _model;
40 }
41
42 public String getEntryExtension()
43 {
44 return MODEL_EXTENSION;
45 }
46
47 public void initEntryFilename()
48 {
49 if (_model != null)
50 {
51 _entryFilename = _project.getName() + "_" + _model.getIdentifier() + MODEL_EXTENSION;
52 }
53 }
54
55 public void load(InputStream in) throws IOException
56 {
57 InputSource src = new InputSource(in);
58 File path = new File(_project.getFilepath());
59 src.setSystemId(path.toURL().toString() + "$" + getEntryFilename());
60
61 System.out.println("======================================================");
62 System.out.println("== READING MODEL: " + src.getSystemId());
63 System.out.println();
64
65 ModelConverter converter = ModelConverter.create(ModelConverter.TARGET_MOF);
66 _repository = (MDFOutermostPackage) converter.getRepository();
67 _repository.getXMIReader(XMI_VERSION).read(in, _repository);
68 _model = (Schema) converter.convert(_repository);
69 initEntryFilename();
70 }
71
72 public void save(OutputStream out) throws IOException
73 {
74 ModelConverter converter = ModelConverter.create(ModelConverter.TARGET_ERJ);
75 _repository = (MDFOutermostPackage) converter.convert(_model);
76 _repository.getXMIWriter(XMI_VERSION).write(_repository, out);
77 }
78
79 } /*** end class ProjectModel */
This page was automatically generated by Maven