1 package org.simantics.xml.sax.base;
\r
3 import java.util.Collection;
\r
4 import java.util.Collections;
\r
5 import java.util.List;
\r
7 import javax.xml.stream.XMLStreamException;
\r
8 import javax.xml.stream.XMLStreamWriter;
\r
10 import org.simantics.databoard.binding.Binding;
\r
11 import org.simantics.db.ReadGraph;
\r
12 import org.simantics.db.Resource;
\r
13 import org.simantics.db.Statement;
\r
14 import org.simantics.db.exception.DatabaseException;
\r
15 import org.simantics.layer0.Layer0;
\r
17 public class ValueElementWriter implements XMLElementWriter{
\r
23 public ValueElementWriter(String name, String typeURI,Binding binding) {
\r
25 this.typeURI = typeURI;
\r
26 this.binding = binding;
\r
30 public String getElementId() {
\r
35 public Resource getType(ReadGraph graph) throws DatabaseException {
\r
36 return graph.getResource(typeURI);
\r
40 public void start(ReadGraph graph, WriterElement instance, XMLStreamWriter writer)
\r
41 throws XMLStreamException, DatabaseException {
\r
42 writer.writeStartElement(getElementId());
\r
46 public List<Resource> children(ReadGraph graph, WriterElement instance, XMLStreamWriter writer)
\r
47 throws XMLStreamException, DatabaseException {
\r
48 return Collections.EMPTY_LIST;
\r
52 public void end(ReadGraph graph, WriterElement instance, XMLStreamWriter writer)
\r
53 throws XMLStreamException, DatabaseException {
\r
54 writer.writeEndElement();
\r
58 public void attributes(ReadGraph graph, WriterElement instance, Collection<Statement> attributes,
\r
59 XMLStreamWriter writer) throws XMLStreamException, DatabaseException {
\r
64 public void characters(ReadGraph graph, WriterElement instance, XMLStreamWriter writer)
\r
65 throws XMLStreamException, DatabaseException {
\r
66 Layer0 l0 = Layer0.getInstance(graph);
\r
67 Object value = graph.getValue(instance.getResource(), binding);
\r
68 writer.writeCharacters(value.toString());
\r
69 // if (binding == Bindings.STRING) {
\r
70 // graph.claim(element.getData(), l0.InstanceOf, l0.String);
\r
71 // graph.claimValue(element.getData(), string, binding);
\r
72 // } else if (binding == Bindings.INTEGER) {
\r
73 // graph.claim(element.getData(), l0.InstanceOf, l0.Integer);
\r
74 // graph.claimValue(element.getData(), Integer.parseInt(string), binding);
\r
75 // } else if (binding == Bindings.FLOAT) {
\r
76 // graph.claim(element.getData(), l0.InstanceOf, l0.Float);
\r
77 // graph.claimValue(element.getData(), Float.parseFloat(string), binding);
\r
78 // } else if (binding == Bindings.DOUBLE) {
\r
79 // graph.claim(element.getData(), l0.InstanceOf, l0.Double);
\r
80 // graph.claimValue(element.getData(), Double.parseDouble(string), binding);
\r
81 // } else if (binding == Bindings.BOOLEAN) {
\r
82 // graph.claim(element.getData(), l0.InstanceOf, l0.Boolean);
\r
83 // graph.claimValue(element.getData(), Boolean.parseBoolean(string), binding);
\r
84 // } else if (binding == Bindings.LONG) {
\r
85 // graph.claim(element.getData(), l0.InstanceOf, l0.Long);
\r
86 // graph.claimValue(element.getData(), Long.parseLong(string), binding);
\r
87 // } else if (binding == Bindings.BYTE) {
\r
88 // graph.claim(element.getData(), l0.InstanceOf, l0.Byte);
\r
89 // graph.claimValue(element.getData(), Byte.parseByte(string), binding);
\r
91 // throw new DatabaseException("Unknown datatype " + binding);
\r