]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.xml.sax.base/src/org/simantics/xml/sax/base/ValueElementWriter.java
Several updates to interoperability.
[simantics/interop.git] / org.simantics.xml.sax.base / src / org / simantics / xml / sax / base / ValueElementWriter.java
index 42aa3c16a3af32f4178dec1dfebdf561b0de372e..3035ae81c27f0888395710a7b3a8a49a2144b8fe 100644 (file)
@@ -1,8 +1,6 @@
 package org.simantics.xml.sax.base;\r
 \r
 import java.util.Collection;\r
-import java.util.Collections;\r
-import java.util.List;\r
 import java.util.Set;\r
 \r
 import javax.xml.stream.XMLStreamException;\r
@@ -13,9 +11,8 @@ import org.simantics.db.ReadGraph;
 import org.simantics.db.Resource;\r
 import org.simantics.db.Statement;\r
 import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.layer0.Layer0;\r
 \r
-public class ValueElementWriter implements XMLElementWriter{\r
+public abstract class ValueElementWriter implements XMLElementWriter{\r
        \r
        String name;\r
        Binding binding;\r
@@ -61,36 +58,13 @@ public class ValueElementWriter implements XMLElementWriter{
                \r
        }\r
        \r
+       public abstract String decode(Object value);\r
+       \r
        @Override\r
        public void characters(ReadGraph graph, WriterElement instance, XMLStreamWriter writer)\r
                        throws XMLStreamException, DatabaseException {\r
-                       Layer0 l0 = Layer0.getInstance(graph);\r
                Object value = graph.getValue(instance.getResource(), binding);\r
-               writer.writeCharacters(value.toString());\r
-//             if (binding == Bindings.STRING) {\r
-//                     graph.claim(element.getData(), l0.InstanceOf, l0.String);\r
-//                     graph.claimValue(element.getData(), string, binding);\r
-//             } else if (binding == Bindings.INTEGER) {\r
-//                     graph.claim(element.getData(), l0.InstanceOf, l0.Integer);\r
-//                     graph.claimValue(element.getData(), Integer.parseInt(string), binding);\r
-//             } else if (binding == Bindings.FLOAT) {\r
-//                     graph.claim(element.getData(), l0.InstanceOf, l0.Float);\r
-//                     graph.claimValue(element.getData(), Float.parseFloat(string), binding);\r
-//             } else if (binding == Bindings.DOUBLE) {\r
-//                     graph.claim(element.getData(), l0.InstanceOf, l0.Double);\r
-//                     graph.claimValue(element.getData(), Double.parseDouble(string), binding);\r
-//             } else if (binding == Bindings.BOOLEAN) {\r
-//                     graph.claim(element.getData(), l0.InstanceOf, l0.Boolean);\r
-//                     graph.claimValue(element.getData(), Boolean.parseBoolean(string), binding);\r
-//             } else if (binding == Bindings.LONG) {\r
-//                     graph.claim(element.getData(), l0.InstanceOf, l0.Long);\r
-//                     graph.claimValue(element.getData(), Long.parseLong(string), binding);\r
-//             } else if (binding == Bindings.BYTE) {\r
-//                     graph.claim(element.getData(), l0.InstanceOf, l0.Byte);\r
-//                     graph.claimValue(element.getData(), Byte.parseByte(string), binding);\r
-//             } else {\r
-//                     throw new DatabaseException("Unknown datatype " + binding);\r
-//             }\r
+               writer.writeCharacters(decode(value));\r
        }\r
 \r
 }\r