]> gerrit.simantics Code Review - simantics/interop.git/blob - org.simantics.xml.sax.base/src/org/simantics/xml/sax/base/ValueElementWriter.java
42aa3c16a3af32f4178dec1dfebdf561b0de372e
[simantics/interop.git] / org.simantics.xml.sax.base / src / org / simantics / xml / sax / base / ValueElementWriter.java
1 package org.simantics.xml.sax.base;\r
2 \r
3 import java.util.Collection;\r
4 import java.util.Collections;\r
5 import java.util.List;\r
6 import java.util.Set;\r
7 \r
8 import javax.xml.stream.XMLStreamException;\r
9 import javax.xml.stream.XMLStreamWriter;\r
10 \r
11 import org.simantics.databoard.binding.Binding;\r
12 import org.simantics.db.ReadGraph;\r
13 import org.simantics.db.Resource;\r
14 import org.simantics.db.Statement;\r
15 import org.simantics.db.exception.DatabaseException;\r
16 import org.simantics.layer0.Layer0;\r
17 \r
18 public class ValueElementWriter implements XMLElementWriter{\r
19         \r
20         String name;\r
21         Binding binding;\r
22         String typeURI;\r
23         \r
24         public ValueElementWriter(String name, String typeURI,Binding binding) {\r
25                 this.name = name;\r
26                 this.typeURI = typeURI;\r
27                 this.binding = binding;\r
28         }\r
29         \r
30         @Override\r
31         public String getElementId() {\r
32                 return name;\r
33         }\r
34         \r
35         @Override\r
36         public Resource getType(ReadGraph graph) throws DatabaseException {\r
37                 return graph.getResource(typeURI);\r
38         }\r
39         \r
40         @Override\r
41         public void start(ReadGraph graph, WriterElement instance, XMLStreamWriter writer)\r
42                         throws XMLStreamException, DatabaseException {\r
43                 writer.writeStartElement(getElementId());\r
44         }\r
45         \r
46         @Override\r
47         public void children(ReadGraph graph, WriterElement instance, Set<Resource> sorted)\r
48                         throws XMLStreamException, DatabaseException {\r
49                 \r
50         }\r
51         \r
52         @Override\r
53         public void end(ReadGraph graph, WriterElement instance, XMLStreamWriter writer)\r
54                         throws XMLStreamException, DatabaseException {\r
55                 writer.writeEndElement();\r
56         }\r
57         \r
58         @Override\r
59         public void attributes(ReadGraph graph, WriterElement instance, Collection<Statement> attributes,\r
60                         XMLStreamWriter writer) throws XMLStreamException, DatabaseException {\r
61                 \r
62         }\r
63         \r
64         @Override\r
65         public void characters(ReadGraph graph, WriterElement instance, XMLStreamWriter writer)\r
66                         throws XMLStreamException, DatabaseException {\r
67                         Layer0 l0 = Layer0.getInstance(graph);\r
68                 Object value = graph.getValue(instance.getResource(), binding);\r
69                 writer.writeCharacters(value.toString());\r
70 //              if (binding == Bindings.STRING) {\r
71 //                      graph.claim(element.getData(), l0.InstanceOf, l0.String);\r
72 //                      graph.claimValue(element.getData(), string, binding);\r
73 //              } else if (binding == Bindings.INTEGER) {\r
74 //                      graph.claim(element.getData(), l0.InstanceOf, l0.Integer);\r
75 //                      graph.claimValue(element.getData(), Integer.parseInt(string), binding);\r
76 //              } else if (binding == Bindings.FLOAT) {\r
77 //                      graph.claim(element.getData(), l0.InstanceOf, l0.Float);\r
78 //                      graph.claimValue(element.getData(), Float.parseFloat(string), binding);\r
79 //              } else if (binding == Bindings.DOUBLE) {\r
80 //                      graph.claim(element.getData(), l0.InstanceOf, l0.Double);\r
81 //                      graph.claimValue(element.getData(), Double.parseDouble(string), binding);\r
82 //              } else if (binding == Bindings.BOOLEAN) {\r
83 //                      graph.claim(element.getData(), l0.InstanceOf, l0.Boolean);\r
84 //                      graph.claimValue(element.getData(), Boolean.parseBoolean(string), binding);\r
85 //              } else if (binding == Bindings.LONG) {\r
86 //                      graph.claim(element.getData(), l0.InstanceOf, l0.Long);\r
87 //                      graph.claimValue(element.getData(), Long.parseLong(string), binding);\r
88 //              } else if (binding == Bindings.BYTE) {\r
89 //                      graph.claim(element.getData(), l0.InstanceOf, l0.Byte);\r
90 //                      graph.claimValue(element.getData(), Byte.parseByte(string), binding);\r
91 //              } else {\r
92 //                      throw new DatabaseException("Unknown datatype " + binding);\r
93 //              }\r
94         }\r
95 \r
96 }\r