1 package org.simantics.xml.sax.base;
\r
3 import java.util.Collection;
\r
4 import java.util.Set;
\r
6 import javax.xml.stream.XMLStreamException;
\r
7 import javax.xml.stream.XMLStreamWriter;
\r
9 import org.simantics.databoard.binding.Binding;
\r
10 import org.simantics.db.ReadGraph;
\r
11 import org.simantics.db.Resource;
\r
12 import org.simantics.db.Statement;
\r
13 import org.simantics.db.exception.DatabaseException;
\r
15 public abstract class ValueElementWriter implements XMLElementWriter{
\r
21 public ValueElementWriter(String name, String typeURI,Binding binding) {
\r
23 this.typeURI = typeURI;
\r
24 this.binding = binding;
\r
28 public String getElementId() {
\r
33 public Resource getType(ReadGraph graph) throws DatabaseException {
\r
34 return graph.getResource(typeURI);
\r
38 public void start(ReadGraph graph, WriterElement instance, XMLStreamWriter writer)
\r
39 throws XMLStreamException, DatabaseException {
\r
40 writer.writeStartElement(getElementId());
\r
44 public void children(ReadGraph graph, WriterElement instance, Set<Resource> sorted)
\r
45 throws XMLStreamException, DatabaseException {
\r
50 public void end(ReadGraph graph, WriterElement instance, XMLStreamWriter writer)
\r
51 throws XMLStreamException, DatabaseException {
\r
52 writer.writeEndElement();
\r
56 public void attributes(ReadGraph graph, WriterElement instance, Collection<Statement> attributes,
\r
57 XMLStreamWriter writer) throws XMLStreamException, DatabaseException {
\r
61 public abstract String decode(Object value);
\r
64 public void characters(ReadGraph graph, WriterElement instance, XMLStreamWriter writer)
\r
65 throws XMLStreamException, DatabaseException {
\r
66 Object value = graph.getValue(instance.getResource(), binding);
\r
67 writer.writeCharacters(decode(value));
\r