1 package org.simantics.interop.xmlio;
\r
3 import java.util.List;
\r
5 import org.simantics.db.ReadGraph;
\r
6 import org.simantics.db.Resource;
\r
7 import org.simantics.db.exception.DatabaseException;
\r
8 import org.simantics.interop.xmlio.LoadXML.Bundle;
\r
9 import org.simantics.layer0.Layer0;
\r
11 public class DefaultLoadRule implements LoadRule{
\r
16 public Resource getResource(ReadGraph graph, String uri)
\r
17 throws DatabaseException {
\r
18 return graph.getResource(uri);
\r
22 public Object createValue(ReadGraph graph, List<String> value, List<String> types)
\r
23 throws DatabaseException {
\r
24 if (types.contains(Layer0.URIs.String))
\r
25 return value.get(0);
\r
26 if (types.contains(Layer0.URIs.Boolean))
\r
27 return Boolean.parseBoolean(value.get(0));
\r
28 if (types.contains(Layer0.URIs.Byte))
\r
29 return Byte.parseByte(value.get(0));
\r
30 if (types.contains(Layer0.URIs.Double))
\r
31 return Double.parseDouble(value.get(0));
\r
32 if (types.contains(Layer0.URIs.Integer))
\r
33 return Integer.parseInt(value.get(0));
\r
34 if (types.contains(Layer0.URIs.Long))
\r
35 return Long.parseLong(value.get(0));
\r
36 if (types.contains(Layer0.URIs.Float))
\r
37 return Float.parseFloat(value.get(0));
\r
39 if (types.contains(Layer0.URIs.StringArray)) {
\r
40 String[] result = new String[value.size()];
\r
41 for (int i = 0; i < result.length; i++)
\r
42 result[i] = value.get(i);
\r
45 if (types.contains(Layer0.URIs.BooleanArray)) {
\r
46 boolean[] result = new boolean[value.size()];
\r
47 for (int i = 0; i < result.length; i++)
\r
48 result[i] = Boolean.parseBoolean(value.get(i));
\r
51 if (types.contains(Layer0.URIs.BooleanArray)) {
\r
52 boolean[] result = new boolean[value.size()];
\r
53 for (int i = 0; i < result.length; i++)
\r
54 result[i] = Boolean.parseBoolean(value.get(i));
\r
57 if (types.contains(Layer0.URIs.ByteArray)) {
\r
58 byte[] result = new byte[value.size()];
\r
59 for (int i = 0; i < result.length; i++)
\r
60 result[i] = Byte.parseByte(value.get(i));
\r
63 if (types.contains(Layer0.URIs.DoubleArray)) {
\r
64 double[] result = new double[value.size()];
\r
65 for (int i = 0; i < result.length; i++)
\r
66 result[i] = Double.parseDouble(value.get(i));
\r
70 if (types.contains(Layer0.URIs.IntegerArray)) {
\r
71 int[] result = new int[value.size()];
\r
72 for (int i = 0; i < result.length; i++)
\r
73 result[i] = Integer.parseInt(value.get(i));
\r
76 if (types.contains(Layer0.URIs.LongArray)) {
\r
77 long[] result = new long[value.size()];
\r
78 for (int i = 0; i < result.length; i++)
\r
79 result[i] = Long.parseLong(value.get(i));
\r
82 if (types.contains(Layer0.URIs.FloatArray)) {
\r
83 float[] result = new float[value.size()];
\r
84 for (int i = 0; i < result.length; i++)
\r
85 result[i] = Float.parseFloat(value.get(i));
\r
88 throw new DatabaseException("Unknow value");
\r
93 public void initializeWithBundles(ReadGraph graph, List<Bundle> bundles)
\r
94 throws DatabaseException {
\r
95 l0 = Layer0.getInstance(graph);
\r