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
6 import java.util.Set;
\r
8 import javax.xml.stream.XMLStreamException;
\r
9 import javax.xml.stream.XMLStreamWriter;
\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
18 public class ValueElementWriter implements XMLElementWriter{
\r
24 public ValueElementWriter(String name, String typeURI,Binding binding) {
\r
26 this.typeURI = typeURI;
\r
27 this.binding = binding;
\r
31 public String getElementId() {
\r
36 public Resource getType(ReadGraph graph) throws DatabaseException {
\r
37 return graph.getResource(typeURI);
\r
41 public void start(ReadGraph graph, WriterElement instance, XMLStreamWriter writer)
\r
42 throws XMLStreamException, DatabaseException {
\r
43 writer.writeStartElement(getElementId());
\r
47 public void children(ReadGraph graph, WriterElement instance, Set<Resource> sorted)
\r
48 throws XMLStreamException, DatabaseException {
\r
53 public void end(ReadGraph graph, WriterElement instance, XMLStreamWriter writer)
\r
54 throws XMLStreamException, DatabaseException {
\r
55 writer.writeEndElement();
\r
59 public void attributes(ReadGraph graph, WriterElement instance, Collection<Statement> attributes,
\r
60 XMLStreamWriter writer) throws XMLStreamException, DatabaseException {
\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
92 // throw new DatabaseException("Unknown datatype " + binding);
\r