+ public static boolean compareValue(ReadGraph g, Layer0 b, Resource r1, Resource r2) throws DatabaseException {
+ Resource t1 = g.getSingleType(r1);
+ Resource t2 = g.getSingleType(r2);
+ if (!t1.equals(t2))
+ return false;
+ if (t1.equals(b.Integer)) {
+ int v1 = g.getValue(r1, Bindings.INTEGER);
+ int v2 = g.getValue(r2, Bindings.INTEGER);
+ return v1 == v2;
+ } else if (t1.equals(b.Float)) {
+ float v1 = g.getValue(r1, Bindings.FLOAT);
+ float v2 = g.getValue(r2, Bindings.FLOAT);
+ return v1 == v2;
+ } else if (t1.equals(b.Double)) {
+ double v1 = g.getValue(r1, Bindings.DOUBLE);
+ double v2 = g.getValue(r2, Bindings.DOUBLE);
+ return v1 == v2;
+ } else if (t1.equals(b.String)) {
+ String v1 = g.getValue(r1, Bindings.STRING);
+ String v2 = g.getValue(r2, Bindings.STRING);
+ return v1.equals(v2);
+ } else if (t1.equals(b.Boolean)) {
+ boolean v1 = g.getValue(r1, Bindings.BOOLEAN);
+ boolean v2 = g.getValue(r2, Bindings.BOOLEAN);
+ return v1 == v2;
+ } else if (t1.equals(b.Byte)) {
+ byte v1 = g.getValue(r1, Bindings.BYTE);
+ byte v2 = g.getValue(r2, Bindings.BYTE);
+ return v1 == v2;
+ } else if (t1.equals(b.Long)) {
+ long v1 = g.getValue(r1, Bindings.LONG);
+ long v2 = g.getValue(r2, Bindings.LONG);
+ return v1 == v2;
+ } else if (t1.equals(b.IntegerArray)) {
+ int[] v1 = g.getValue(r1, Bindings.INT_ARRAY);
+ int[] v2 = g.getValue(r2, Bindings.INT_ARRAY);
+ return Arrays.equals(v1,v2);
+ } else if (t1.equals(b.FloatArray)) {
+ float[] v1 = g.getValue(r1, Bindings.FLOAT_ARRAY);
+ float[] v2 = g.getValue(r2, Bindings.FLOAT_ARRAY);
+ return Arrays.equals(v1,v2);
+ } else if (t1.equals(b.DoubleArray)) {
+ double[] v1 = g.getValue(r1, Bindings.DOUBLE_ARRAY);
+ double[] v2 = g.getValue(r2, Bindings.DOUBLE_ARRAY);
+ return Arrays.equals(v1,v2);
+ } else if (t1.equals(b.StringArray)) {
+ String[] v1 = g.getValue(r1, Bindings.STRING_ARRAY);
+ String[] v2 = g.getValue(r2, Bindings.STRING_ARRAY);
+ return Arrays.equals(v1,v2);
+ } else if (t1.equals(b.BooleanArray)) {
+ boolean[] v1 = g.getValue(r1, Bindings.BOOLEAN_ARRAY);
+ boolean[] v2 = g.getValue(r2, Bindings.BOOLEAN_ARRAY);
+ return Arrays.equals(v1,v2);
+ } else if (t1.equals(b.ByteArray)) {
+ byte[] v1 = g.getValue(r1, Bindings.BYTE_ARRAY);
+ byte[] v2 = g.getValue(r2, Bindings.BYTE_ARRAY);
+ return Arrays.equals(v1,v2);
+ } else if (t1.equals(b.LongArray)) {
+ long[] v1 = g.getValue(r1, Bindings.LONG_ARRAY);
+ long[] v2 = g.getValue(r2, Bindings.LONG_ARRAY);
+ return Arrays.equals(v1,v2);
+ } else {
+ Object v1 = g.getValue(r1);
+ Object v2 = g.getValue(r2);
+ return compareValue(v1, v2);
+ }
+
+ }
+