]> gerrit.simantics Code Review - simantics/interop.git/blob - org.simantics.interop.xmlio/src/org/simantics/interop/xmlio/DefaultLoadRule.java
Replace log4j with slf4j
[simantics/interop.git] / org.simantics.interop.xmlio / src / org / simantics / interop / xmlio / DefaultLoadRule.java
1 package org.simantics.interop.xmlio;\r
2 \r
3 import java.util.List;\r
4 \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
10 \r
11 public class DefaultLoadRule implements LoadRule{\r
12         \r
13         private Layer0 l0;\r
14         \r
15         @Override\r
16         public Resource getResource(ReadGraph graph, String uri)\r
17                         throws DatabaseException {\r
18                 return graph.getResource(uri);\r
19         }\r
20         \r
21         @Override\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
38                 \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
43                         return result;\r
44                 }\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
49                         return result;\r
50                 }\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
55                         return result;\r
56                 }\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
61                         return result;\r
62                 }\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
67                         return result;\r
68                 }\r
69                 \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
74                         return result;\r
75                 }\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
80                         return result;\r
81                 }\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
86                         return result;\r
87                 }\r
88                 throw new DatabaseException("Unknow value");\r
89                 \r
90         }\r
91         \r
92         @Override\r
93         public void initializeWithBundles(ReadGraph graph, List<Bundle> bundles)\r
94                         throws DatabaseException {\r
95                 l0 = Layer0.getInstance(graph);\r
96                 \r
97         }\r
98 \r
99 }\r