--- /dev/null
+package org.simantics.interop.xmlio;\r
+\r
+import java.util.List;\r
+\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.interop.xmlio.LoadXML.Bundle;\r
+import org.simantics.layer0.Layer0;\r
+\r
+public class DefaultLoadRule implements LoadRule{\r
+ \r
+ private Layer0 l0;\r
+ \r
+ @Override\r
+ public Resource getResource(ReadGraph graph, String uri)\r
+ throws DatabaseException {\r
+ return graph.getResource(uri);\r
+ }\r
+ \r
+ @Override\r
+ public Object createValue(ReadGraph graph, List<String> value, List<String> types)\r
+ throws DatabaseException {\r
+ if (types.contains(Layer0.URIs.String))\r
+ return value.get(0);\r
+ if (types.contains(Layer0.URIs.Boolean))\r
+ return Boolean.parseBoolean(value.get(0));\r
+ if (types.contains(Layer0.URIs.Byte))\r
+ return Byte.parseByte(value.get(0));\r
+ if (types.contains(Layer0.URIs.Double))\r
+ return Double.parseDouble(value.get(0));\r
+ if (types.contains(Layer0.URIs.Integer))\r
+ return Integer.parseInt(value.get(0));\r
+ if (types.contains(Layer0.URIs.Long))\r
+ return Long.parseLong(value.get(0));\r
+ if (types.contains(Layer0.URIs.Float))\r
+ return Float.parseFloat(value.get(0));\r
+ \r
+ if (types.contains(Layer0.URIs.StringArray)) {\r
+ String[] result = new String[value.size()];\r
+ for (int i = 0; i < result.length; i++)\r
+ result[i] = value.get(i);\r
+ return result;\r
+ }\r
+ if (types.contains(Layer0.URIs.BooleanArray)) {\r
+ boolean[] result = new boolean[value.size()];\r
+ for (int i = 0; i < result.length; i++)\r
+ result[i] = Boolean.parseBoolean(value.get(i));\r
+ return result;\r
+ }\r
+ if (types.contains(Layer0.URIs.BooleanArray)) {\r
+ boolean[] result = new boolean[value.size()];\r
+ for (int i = 0; i < result.length; i++)\r
+ result[i] = Boolean.parseBoolean(value.get(i));\r
+ return result;\r
+ }\r
+ if (types.contains(Layer0.URIs.ByteArray)) {\r
+ byte[] result = new byte[value.size()];\r
+ for (int i = 0; i < result.length; i++)\r
+ result[i] = Byte.parseByte(value.get(i));\r
+ return result;\r
+ }\r
+ if (types.contains(Layer0.URIs.DoubleArray)) {\r
+ double[] result = new double[value.size()];\r
+ for (int i = 0; i < result.length; i++)\r
+ result[i] = Double.parseDouble(value.get(i));\r
+ return result;\r
+ }\r
+ \r
+ if (types.contains(Layer0.URIs.IntegerArray)) {\r
+ int[] result = new int[value.size()];\r
+ for (int i = 0; i < result.length; i++)\r
+ result[i] = Integer.parseInt(value.get(i));\r
+ return result;\r
+ }\r
+ if (types.contains(Layer0.URIs.LongArray)) {\r
+ long[] result = new long[value.size()];\r
+ for (int i = 0; i < result.length; i++)\r
+ result[i] = Long.parseLong(value.get(i));\r
+ return result;\r
+ }\r
+ if (types.contains(Layer0.URIs.FloatArray)) {\r
+ float[] result = new float[value.size()];\r
+ for (int i = 0; i < result.length; i++)\r
+ result[i] = Float.parseFloat(value.get(i));\r
+ return result;\r
+ }\r
+ throw new DatabaseException("Unknow value");\r
+ \r
+ }\r
+ \r
+ @Override\r
+ public void initializeWithBundles(ReadGraph graph, List<Bundle> bundles)\r
+ throws DatabaseException {\r
+ l0 = Layer0.getInstance(graph);\r
+ \r
+ }\r
+\r
+}\r