http://git-wip-us.apache.org/repos/asf/flink/blob/f39aec82/flink-java/src/test/java/org/apache/flink/api/java/functions/SemanticPropUtilTest.java
----------------------------------------------------------------------
diff --git 
a/flink-java/src/test/java/org/apache/flink/api/java/functions/SemanticPropUtilTest.java
 
b/flink-java/src/test/java/org/apache/flink/api/java/functions/SemanticPropUtilTest.java
index cf81550..372c0f7 100644
--- 
a/flink-java/src/test/java/org/apache/flink/api/java/functions/SemanticPropUtilTest.java
+++ 
b/flink-java/src/test/java/org/apache/flink/api/java/functions/SemanticPropUtilTest.java
@@ -19,6 +19,7 @@
 
 package org.apache.flink.api.java.functions;
 
+import org.apache.flink.api.common.operators.SemanticProperties;
 import 
org.apache.flink.api.common.operators.SemanticProperties.InvalidSemanticAnnotationException;
 import org.apache.flink.api.common.typeutils.CompositeType;
 import org.apache.flink.api.java.typeutils.TypeExtractor;
@@ -34,6 +35,8 @@ import org.apache.flink.api.java.tuple.Tuple5;
 import org.apache.flink.api.java.typeutils.TupleTypeInfo;
 import org.junit.Test;
 
+import static org.junit.Assert.assertTrue;
+
 public class SemanticPropUtilTest {
        
        private final TypeInformation<?> threeIntTupleType = new 
TupleTypeInfo<Tuple3<Integer, Integer, Integer>>(BasicTypeInfo.INT_TYPE_INFO,
@@ -74,43 +77,43 @@ public class SemanticPropUtilTest {
 
                int[] pMap = new int[] {3,0,4};
                SingleInputSemanticProperties sp = 
SemanticPropUtil.createProjectionPropertiesSingle(pMap, (CompositeType<?>) 
fiveIntTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(2));
 
                pMap = new int[] {2,2,1,1};
                sp = SemanticPropUtil.createProjectionPropertiesSingle(pMap, 
(CompositeType<?>) fiveIntTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 1).size() == 
2);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 2).size() == 
2);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 1).size() == 2);
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 2).size() == 2);
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(1));
 
                pMap = new int[] {2,0};
                sp = SemanticPropUtil.createProjectionPropertiesSingle(pMap, 
(CompositeType<?>) nestedTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(3));
 
                pMap = new int[] {2,0,1};
                sp = SemanticPropUtil.createProjectionPropertiesSingle(pMap, 
(CompositeType<?>) deepNestedTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
6).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(5));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
5).contains(6));
+               assertTrue(sp.getForwardingTargetFields(0, 6).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(5));
+               assertTrue(sp.getForwardingTargetFields(0, 5).contains(6));
 
                pMap = new int[] {2, 1};
                sp = SemanticPropUtil.createProjectionPropertiesSingle(pMap, 
(CompositeType<?>) pojoInTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
5).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 5).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(4));
 
        }
 
@@ -121,88 +124,199 @@ public class SemanticPropUtilTest {
                boolean[] iMap = new boolean[]{true, true, false, true, false, 
false};
                DualInputSemanticProperties sp = 
SemanticPropUtil.createProjectionPropertiesDual(pMap, iMap,
                                fiveIntTupleType, fiveIntTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
0).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
3).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
4).contains(5));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(1));
+               assertTrue(sp.getForwardingTargetFields(1, 0).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(3));
+               assertTrue(sp.getForwardingTargetFields(1, 3).contains(4));
+               assertTrue(sp.getForwardingTargetFields(1, 4).contains(5));
 
                pMap = new int[]{4,2,0,4,0,1};
                iMap = new boolean[]{true, true, false, true, false, false};
                sp = SemanticPropUtil.createProjectionPropertiesDual(pMap, 
iMap, fiveIntTupleType, fiveIntTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 4).size() == 
2);
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 0).size() == 
2);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
0).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
0).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
1).contains(5));
+               assertTrue(sp.getForwardingTargetFields(0, 4).size() == 2);
+               assertTrue(sp.getForwardingTargetFields(1, 0).size() == 2);
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(1));
+               assertTrue(sp.getForwardingTargetFields(1, 0).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(3));
+               assertTrue(sp.getForwardingTargetFields(1, 0).contains(4));
+               assertTrue(sp.getForwardingTargetFields(1, 1).contains(5));
 
                pMap = new int[]{2,1,0,1};
                iMap = new boolean[]{false, false, true, true};
                sp = SemanticPropUtil.createProjectionPropertiesDual(pMap, 
iMap, nestedTupleType, threeIntTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
2).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
1).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(5));
+               assertTrue(sp.getForwardingTargetFields(1, 2).contains(0));
+               assertTrue(sp.getForwardingTargetFields(1, 1).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(5));
 
                pMap = new int[]{1,0,0};
                iMap = new boolean[]{false, false, true};
                sp = SemanticPropUtil.createProjectionPropertiesDual(pMap, 
iMap, nestedTupleType, deepNestedTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
1).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
2).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
3).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
4).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
5).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
0).contains(5));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(6));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(7));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(8));
+               assertTrue(sp.getForwardingTargetFields(1, 1).contains(0));
+               assertTrue(sp.getForwardingTargetFields(1, 2).contains(1));
+               assertTrue(sp.getForwardingTargetFields(1, 3).contains(2));
+               assertTrue(sp.getForwardingTargetFields(1, 4).contains(3));
+               assertTrue(sp.getForwardingTargetFields(1, 5).contains(4));
+               assertTrue(sp.getForwardingTargetFields(1, 0).contains(5));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(6));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(7));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(8));
 
                pMap = new int[]{4,2,1,0};
                iMap = new boolean[]{true, false, true, false};
                sp = SemanticPropUtil.createProjectionPropertiesDual(pMap, 
iMap, fiveIntTupleType, pojoInTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
2).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
3).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
4).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
5).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(5));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
0).contains(6));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(0));
+               assertTrue(sp.getForwardingTargetFields(1, 2).contains(1));
+               assertTrue(sp.getForwardingTargetFields(1, 3).contains(2));
+               assertTrue(sp.getForwardingTargetFields(1, 4).contains(3));
+               assertTrue(sp.getForwardingTargetFields(1, 5).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(5));
+               assertTrue(sp.getForwardingTargetFields(1, 0).contains(6));
 
                pMap = new int[]{2,3,-1,0};
                iMap = new boolean[]{true, true, false, true};
                sp = SemanticPropUtil.createProjectionPropertiesDual(pMap, 
iMap, fiveIntTupleType, intType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
0).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(1));
+               assertTrue(sp.getForwardingTargetFields(1, 0).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(3));
 
                pMap = new int[]{-1,-1};
                iMap = new boolean[]{false, true};
                sp = SemanticPropUtil.createProjectionPropertiesDual(pMap, 
iMap, intType, nestedPojoType);
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
1).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
2).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
3).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
4).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
5).contains(5));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(6));
+               assertTrue(sp.getForwardingTargetFields(1, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(1, 1).contains(1));
+               assertTrue(sp.getForwardingTargetFields(1, 2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(1, 3).contains(3));
+               assertTrue(sp.getForwardingTargetFields(1, 4).contains(4));
+               assertTrue(sp.getForwardingTargetFields(1, 5).contains(5));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(6));
 
                pMap = new int[]{-1,-1};
                iMap = new boolean[]{true, false};
                sp = SemanticPropUtil.createProjectionPropertiesDual(pMap, 
iMap, intType, nestedPojoType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
0).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
1).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
2).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
3).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
4).contains(5));
-               Assert.assertTrue(sp.getForwardingTargetFields(1, 
5).contains(6));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(1, 0).contains(1));
+               assertTrue(sp.getForwardingTargetFields(1, 1).contains(2));
+               assertTrue(sp.getForwardingTargetFields(1, 2).contains(3));
+               assertTrue(sp.getForwardingTargetFields(1, 3).contains(4));
+               assertTrue(sp.getForwardingTargetFields(1, 4).contains(5));
+               assertTrue(sp.getForwardingTargetFields(1, 5).contains(6));
+
+       }
+
+       // 
--------------------------------------------------------------------------------------------
+       // Offset
+       // 
--------------------------------------------------------------------------------------------
+
+       @Test
+       public void testAddSourceFieldOffset() {
+
+               SingleInputSemanticProperties semProps = new 
SingleInputSemanticProperties();
+               semProps.addForwardedField(0, 1);
+               semProps.addForwardedField(0, 4);
+               semProps.addForwardedField(2, 0);
+               semProps.addForwardedField(4, 3);
+               semProps.addReadFields(new FieldSet(0,3));
+
+               SemanticProperties offsetProps = 
SemanticPropUtil.addSourceFieldOffset(semProps, 5, 0);
+
+               assertTrue(offsetProps.getForwardingTargetFields(0, 0).size() 
== 2);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 
0).contains(1));
+               assertTrue(offsetProps.getForwardingTargetFields(0, 
0).contains(4));
+               assertTrue(offsetProps.getForwardingTargetFields(0, 1).size() 
== 0);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 2).size() 
== 1);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 
2).contains(0));
+               assertTrue(offsetProps.getForwardingTargetFields(0, 3).size() 
== 0);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 4).size() 
== 1);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 
4).contains(3));
+
+               assertTrue(offsetProps.getReadFields(0).size() == 2);
+               assertTrue(offsetProps.getReadFields(0).contains(0));
+               assertTrue(offsetProps.getReadFields(0).contains(3));
+
+               offsetProps = SemanticPropUtil.addSourceFieldOffset(semProps, 
5, 3);
+
+               assertTrue(offsetProps.getForwardingTargetFields(0, 0).size() 
== 0);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 1).size() 
== 0);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 2).size() 
== 0);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 3).size() 
== 2);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 
3).contains(1));
+               assertTrue(offsetProps.getForwardingTargetFields(0, 
3).contains(4));
+               assertTrue(offsetProps.getForwardingTargetFields(0, 4).size() 
== 0);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 5).size() 
== 1);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 
5).contains(0));
+               assertTrue(offsetProps.getForwardingTargetFields(0, 6).size() 
== 0);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 7).size() 
== 1);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 
7).contains(3));
+
+               assertTrue(offsetProps.getReadFields(0).size() == 2);
+               assertTrue(offsetProps.getReadFields(0).contains(3));
+               assertTrue(offsetProps.getReadFields(0).contains(6));
+
+               semProps = new SingleInputSemanticProperties();
+               SemanticPropUtil.addSourceFieldOffset(semProps, 1, 0);
+
+               semProps = new SingleInputSemanticProperties();
+               semProps.addForwardedField(0, 0);
+               semProps.addForwardedField(1, 2);
+               semProps.addForwardedField(2, 4);
+
+               offsetProps = SemanticPropUtil.addSourceFieldOffset(semProps, 
3, 2);
+
+               assertTrue(offsetProps.getForwardingTargetFields(0, 0).size() 
== 0);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 1).size() 
== 0);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 2).size() 
== 1);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 
2).contains(0));
+               assertTrue(offsetProps.getForwardingTargetFields(0, 3).size() 
== 1);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 
3).contains(2));
+               assertTrue(offsetProps.getForwardingTargetFields(0, 4).size() 
== 1);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 
4).contains(4));
+
+       }
+
+       @Test
+       public void testAddSourceFieldOffsets() {
+
+               DualInputSemanticProperties semProps = new 
DualInputSemanticProperties();
+               semProps.addForwardedField(0, 0, 1);
+               semProps.addForwardedField(0, 3, 3);
+               semProps.addForwardedField(1, 1, 2);
+               semProps.addForwardedField(1, 1, 4);
+               semProps.addReadFields(0, new FieldSet(1, 2));
+               semProps.addReadFields(1, new FieldSet(0, 3, 4));
+
+               DualInputSemanticProperties offsetProps = 
SemanticPropUtil.addSourceFieldOffsets(semProps, 4, 3, 1, 2);
+
+               assertTrue(offsetProps.getForwardingTargetFields(0, 0).size() 
== 0);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 1).size() 
== 1);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 
1).contains(1));
+               assertTrue(offsetProps.getForwardingTargetFields(0, 2).size() 
== 0);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 3).size() 
== 0);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 4).size() 
== 1);
+               assertTrue(offsetProps.getForwardingTargetFields(0, 
4).contains(3));
+
+               assertTrue(offsetProps.getForwardingTargetFields(1, 0).size() 
== 0);
+               assertTrue(offsetProps.getForwardingTargetFields(1, 1).size() 
== 0);
+               assertTrue(offsetProps.getForwardingTargetFields(1, 2).size() 
== 0);
+               assertTrue(offsetProps.getForwardingTargetFields(1, 3).size() 
== 2);
+               assertTrue(offsetProps.getForwardingTargetFields(1, 
3).contains(2));
+               assertTrue(offsetProps.getForwardingTargetFields(1, 
3).contains(4));
+
+               assertTrue(offsetProps.getReadFields(0).size() == 2);
+               assertTrue(offsetProps.getReadFields(0).contains(2));
+               assertTrue(offsetProps.getReadFields(0).contains(3));
+               assertTrue(offsetProps.getReadFields(1).size() == 3);
+               assertTrue(offsetProps.getReadFields(1).contains(2));
+               assertTrue(offsetProps.getReadFields(1).contains(5));
+               assertTrue(offsetProps.getReadFields(1).contains(6));
+
+               semProps = new DualInputSemanticProperties();
+               SemanticPropUtil.addSourceFieldOffsets(semProps, 4, 3, 2, 2);
 
        }
 
@@ -216,9 +330,9 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, fiveIntTupleType, fiveIntTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(3));
        }
 
        @Test
@@ -227,23 +341,23 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, fiveIntTupleType, fiveIntTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(3));
 
                forwardedFields[0] = "2;3;0";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, fiveIntTupleType, fiveIntTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(3));
 
                forwardedFields[0] = "2;3;0;";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, fiveIntTupleType, fiveIntTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(3));
        }
 
        @Test
@@ -252,9 +366,9 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, fiveIntTupleType, fiveIntTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(3));
        }
 
        @Test
@@ -263,8 +377,8 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, threeIntTupleType, fiveIntTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(2));
        }
 
        @Test
@@ -273,14 +387,14 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, threeIntTupleType, fiveIntTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(2));
 
                forwardedFields[0] = "0->0;1->2";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, threeIntTupleType, fiveIntTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(2));
        }
 
        @Test
@@ -289,8 +403,8 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, threeIntTupleType, fiveIntTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(2));
        }
        
        @Test
@@ -299,10 +413,10 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, fiveIntTupleType, fiveIntTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(0));
        }
 
        @Test
@@ -311,19 +425,19 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, threeIntTupleType, intType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 0).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 2).size() == 
0);
+               assertTrue(sp.getForwardingTargetFields(0, 0).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0);
 
                forwardedFields[0] = "*->f2";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, intType, threeIntTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(2));
 
                forwardedFields[0] = "*->*";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, intType, intType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
        }
 
        @Test
@@ -332,19 +446,19 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, threeIntTupleType, threeIntTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 3).size() == 
0);
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 3).size() == 0);
 
                forwardedFields[0] = "*";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, deepNestedTupleType, deepNestedTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(4));
 
        }
 
@@ -353,79 +467,79 @@ public class SemanticPropUtilTest {
                String[] forwardedFields = { "f0->f0.f0; f1->f0.f1; f2->f0.f2" 
};
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, threeIntTupleType, nestedTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
 
                forwardedFields[0] = "f0.f0->f1.f0.f2; f0.f1->f2; f2->f1.f2; 
f1->f0";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, nestedTupleType, deepNestedTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(6));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(5));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(6));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(5));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(0));
 
                forwardedFields[0] = "0.0->1.0.2; 0.1->2; 2->1.2; 1->0";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, nestedTupleType, deepNestedTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(6));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(5));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(6));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(5));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(0));
 
                forwardedFields[0] = "f1.f0.*->f0.*; f0->f2";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, deepNestedTupleType, nestedTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(4));
 
                forwardedFields[0] = "1.0.*->0.*; 0->2";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, deepNestedTupleType, nestedTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(4));
 
                forwardedFields[0] = "f1.f0->f0; f0->f2";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, deepNestedTupleType, nestedTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(4));
 
                forwardedFields[0] = "1.0->0; 0->2";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, deepNestedTupleType, nestedTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(4));
 
                forwardedFields[0] = "f1.f0.f1; f1.f1; f2";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, deepNestedTupleType, deepNestedTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
6).contains(6));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 0).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 1).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 3).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 5).size() == 
0);
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 6).contains(6));
+               assertTrue(sp.getForwardingTargetFields(0, 0).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 1).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 3).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 5).size() == 0);
 
                forwardedFields[0] = "f1.f0.*; f1.f2";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, deepNestedTupleType, deepNestedTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
5).contains(5));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 0).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 4).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 6).size() == 
0);
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 5).contains(5));
+               assertTrue(sp.getForwardingTargetFields(0, 0).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 4).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 6).size() == 0);
 
        }
 
@@ -435,118 +549,118 @@ public class SemanticPropUtilTest {
                String[] forwardedFields = { "int1->int2; int3->int1; string1 " 
};
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, pojoType, pojoType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(3));
 
                forwardedFields[0] = "f1->int1; f0->int3 ";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, threeIntTupleType, pojoType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(0));
 
                forwardedFields[0] = "int1->f2; int2->f0; int3->f1";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, pojoType, threeIntTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(1));
 
                forwardedFields[0] = "*->pojo1.*";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, pojoType, nestedPojoType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(4));
 
                forwardedFields[0] = "*->pojo1";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, pojoType, nestedPojoType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(4));
 
                forwardedFields[0] = "int1; string1; int2->pojo1.int3";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, pojoType, nestedPojoType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 2).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(5));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(5));
 
                forwardedFields[0] = "pojo1.*->f2.*; int1->f1";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, nestedPojoType, pojoInTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(5));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(5));
 
                forwardedFields[0] = "f2.*->*";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, pojoInTupleType, pojoType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
5).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 5).contains(3));
 
                forwardedFields[0] = "pojo1->f2; int1->f1";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, nestedPojoType, pojoInTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(5));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(5));
 
                forwardedFields[0] = "f2->*";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, pojoInTupleType, pojoType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
5).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 5).contains(3));
 
                forwardedFields[0] = "int2; string1";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, pojoType, pojoType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 0).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 2).size() == 
0);
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 0).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0);
 
                forwardedFields[0] = "pojo1.int1; string1";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, nestedPojoType, nestedPojoType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
5).contains(5));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 0).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 2).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 3).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 4).size() == 
0);
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 5).contains(5));
+               assertTrue(sp.getForwardingTargetFields(0, 0).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 3).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 4).size() == 0);
 
                forwardedFields[0] = "pojo1.*; int1";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, nestedPojoType, nestedPojoType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 5).size() == 
0);
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 5).size() == 0);
 
                forwardedFields[0] = "pojo1; int1";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, null, nestedPojoType, nestedPojoType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 5).size() == 
0);
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 5).size() == 0);
        }
 
        @Test(expected = InvalidSemanticAnnotationException.class)
@@ -664,9 +778,9 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
nonForwardedFields, null, threeIntTupleType, threeIntTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 1).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 2).size() == 
0);
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0);
        }
 
        @Test
@@ -675,17 +789,17 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
nonForwardedFields, null, threeIntTupleType, threeIntTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 1).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 2).size() == 
0);
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0);
 
                nonForwardedFields[0] = "f1;f2;";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
nonForwardedFields, null, threeIntTupleType, threeIntTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 1).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 2).size() == 
0);
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0);
        }
 
        @Test
@@ -694,9 +808,9 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
nonForwardedFields, null, threeIntTupleType, threeIntTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 1).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 2).size() == 
0);
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0);
        }
 
        @Test
@@ -705,9 +819,9 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
nonForwardedFields, null, threeIntTupleType, threeIntTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
        }
 
        @Test
@@ -716,36 +830,36 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
nonForwardedFields, null, deepNestedTupleType, deepNestedTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 0).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 1).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 2).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 3).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 5).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
6).contains(6));
+               assertTrue(sp.getForwardingTargetFields(0, 0).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 1).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 3).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 5).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 6).contains(6));
 
                nonForwardedFields[0] = "f1.f0; f1.f2; f0";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
nonForwardedFields, null, deepNestedTupleType, deepNestedTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 0).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 1).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 2).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 3).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 5).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
6).contains(6));
+               assertTrue(sp.getForwardingTargetFields(0, 0).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 1).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 3).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 5).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 6).contains(6));
 
                nonForwardedFields[0] = "f2; f1.f1";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
nonForwardedFields, null, deepNestedTupleType, deepNestedTupleType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 4).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
5).contains(5));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 6).size() == 
0);
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 4).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 5).contains(5));
+               assertTrue(sp.getForwardingTargetFields(0, 6).size() == 0);
 
        }
 
@@ -755,10 +869,10 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
nonForwardedFields, null, pojoType, pojoType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 0).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
2).contains(2));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 3).size() == 
0);
+               assertTrue(sp.getForwardingTargetFields(0, 0).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 2).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 3).size() == 0);
 
        }
 
@@ -768,22 +882,22 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
nonForwardedFields, null, nestedPojoType, nestedPojoType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 0).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 1).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 2).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 3).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 4).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
5).contains(5));
+               assertTrue(sp.getForwardingTargetFields(0, 0).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 1).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 3).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 4).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 5).contains(5));
 
                nonForwardedFields[0] = "pojo1.int2; string1";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
nonForwardedFields, null, nestedPojoType, nestedPojoType);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(1));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 2).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
3).contains(3));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
4).contains(4));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 5).size() == 
0);
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(1));
+               assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 3).contains(3));
+               assertTrue(sp.getForwardingTargetFields(0, 4).contains(4));
+               assertTrue(sp.getForwardingTargetFields(0, 5).size() == 0);
        }
 
        @Test(expected = InvalidSemanticAnnotationException.class)
@@ -847,9 +961,9 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
null, readFields, threeIntTupleType, threeIntTupleType);
 
                FieldSet fs = sp.getReadFields(0);
-               Assert.assertTrue(fs.size() == 2);
-               Assert.assertTrue(fs.contains(2));
-               Assert.assertTrue(fs.contains(1));
+               assertTrue(fs.size() == 2);
+               assertTrue(fs.contains(2));
+               assertTrue(fs.contains(1));
        }
        
        @Test
@@ -859,18 +973,18 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
null, readFields, threeIntTupleType, threeIntTupleType);
 
                FieldSet fs = sp.getReadFields(0);
-               Assert.assertTrue(fs.size() == 2);
-               Assert.assertTrue(fs.contains(2));
-               Assert.assertTrue(fs.contains(1));
+               assertTrue(fs.size() == 2);
+               assertTrue(fs.contains(2));
+               assertTrue(fs.contains(1));
 
                readFields[0] = "f1;f2;";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
null, readFields, threeIntTupleType, threeIntTupleType);
 
                fs = sp.getReadFields(0);
-               Assert.assertTrue(fs.size() == 2);
-               Assert.assertTrue(fs.contains(2));
-               Assert.assertTrue(fs.contains(1));
+               assertTrue(fs.size() == 2);
+               assertTrue(fs.contains(2));
+               assertTrue(fs.contains(1));
        }
 
        @Test
@@ -880,9 +994,9 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
null, readFields, threeIntTupleType, threeIntTupleType);
 
                FieldSet fs = sp.getReadFields(0);
-               Assert.assertTrue(fs.size() == 2);
-               Assert.assertTrue(fs.contains(2));
-               Assert.assertTrue(fs.contains(1));
+               assertTrue(fs.size() == 2);
+               assertTrue(fs.contains(2));
+               assertTrue(fs.contains(1));
        }
 
        @Test
@@ -892,15 +1006,15 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
null, readFields, intType, intType);
 
                FieldSet fs = sp.getReadFields(0);
-               Assert.assertTrue(fs.size() == 1);
-               Assert.assertTrue(fs.contains(0));
+               assertTrue(fs.size() == 1);
+               assertTrue(fs.contains(0));
 
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
null, readFields, intType, fiveIntTupleType);
 
                fs = sp.getReadFields(0);
-               Assert.assertTrue(fs.size() == 1);
-               Assert.assertTrue(fs.contains(0));
+               assertTrue(fs.size() == 1);
+               assertTrue(fs.contains(0));
        }
 
        @Test
@@ -910,21 +1024,21 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
null, readFields, nestedTupleType, intType);
 
                FieldSet fs = sp.getReadFields(0);
-               Assert.assertTrue(fs.size() == 3);
-               Assert.assertTrue(fs.contains(1));
-               Assert.assertTrue(fs.contains(2));
-               Assert.assertTrue(fs.contains(4));
+               assertTrue(fs.size() == 3);
+               assertTrue(fs.contains(1));
+               assertTrue(fs.contains(2));
+               assertTrue(fs.contains(4));
 
                readFields[0] = "f0;f1";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
null, readFields, nestedTupleType, intType);
 
                fs = sp.getReadFields(0);
-               Assert.assertTrue(fs.size() == 4);
-               Assert.assertTrue(fs.contains(0));
-               Assert.assertTrue(fs.contains(1));
-               Assert.assertTrue(fs.contains(2));
-               Assert.assertTrue(fs.contains(3));
+               assertTrue(fs.size() == 4);
+               assertTrue(fs.contains(0));
+               assertTrue(fs.contains(1));
+               assertTrue(fs.contains(2));
+               assertTrue(fs.contains(3));
        }
 
        @Test
@@ -934,23 +1048,23 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
null, readFields, nestedTupleType, intType);
 
                FieldSet fs = sp.getReadFields(0);
-               Assert.assertTrue(fs.size() == 5);
-               Assert.assertTrue(fs.contains(0));
-               Assert.assertTrue(fs.contains(1));
-               Assert.assertTrue(fs.contains(2));
-               Assert.assertTrue(fs.contains(3));
-               Assert.assertTrue(fs.contains(4));
+               assertTrue(fs.size() == 5);
+               assertTrue(fs.contains(0));
+               assertTrue(fs.contains(1));
+               assertTrue(fs.contains(2));
+               assertTrue(fs.contains(3));
+               assertTrue(fs.contains(4));
 
                readFields[0] = "f0.*;f1";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
null, readFields, nestedTupleType, intType);
 
                fs = sp.getReadFields(0);
-               Assert.assertTrue(fs.size() == 4);
-               Assert.assertTrue(fs.contains(0));
-               Assert.assertTrue(fs.contains(1));
-               Assert.assertTrue(fs.contains(2));
-               Assert.assertTrue(fs.contains(3));
+               assertTrue(fs.size() == 4);
+               assertTrue(fs.contains(0));
+               assertTrue(fs.contains(1));
+               assertTrue(fs.contains(2));
+               assertTrue(fs.contains(3));
 
        }
 
@@ -961,20 +1075,20 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
null, readFields, pojoType, threeIntTupleType);
 
                FieldSet fs = sp.getReadFields(0);
-               Assert.assertTrue(fs.size() == 2);
-               Assert.assertTrue(fs.contains(1));
-               Assert.assertTrue(fs.contains(3));
+               assertTrue(fs.size() == 2);
+               assertTrue(fs.contains(1));
+               assertTrue(fs.contains(3));
 
                readFields[0] = "*";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
null, readFields, pojoType, intType);
 
                fs = sp.getReadFields(0);
-               Assert.assertTrue(fs.size() == 4);
-               Assert.assertTrue(fs.contains(0));
-               Assert.assertTrue(fs.contains(1));
-               Assert.assertTrue(fs.contains(2));
-               Assert.assertTrue(fs.contains(3));
+               assertTrue(fs.size() == 4);
+               assertTrue(fs.contains(0));
+               assertTrue(fs.contains(1));
+               assertTrue(fs.contains(2));
+               assertTrue(fs.contains(3));
        }
 
        @Test
@@ -984,32 +1098,32 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
null, readFields, nestedPojoType, intType);
 
                FieldSet fs = sp.getReadFields(0);
-               Assert.assertTrue(fs.size() == 3);
-               Assert.assertTrue(fs.contains(2));
-               Assert.assertTrue(fs.contains(4));
-               Assert.assertTrue(fs.contains(5));
+               assertTrue(fs.size() == 3);
+               assertTrue(fs.contains(2));
+               assertTrue(fs.contains(4));
+               assertTrue(fs.contains(5));
 
                readFields[0] = "pojo1.*";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
null, readFields, nestedPojoType, intType);
 
                fs = sp.getReadFields(0);
-               Assert.assertTrue(fs.size() == 4);
-               Assert.assertTrue(fs.contains(1));
-               Assert.assertTrue(fs.contains(2));
-               Assert.assertTrue(fs.contains(3));
-               Assert.assertTrue(fs.contains(4));
+               assertTrue(fs.size() == 4);
+               assertTrue(fs.contains(1));
+               assertTrue(fs.contains(2));
+               assertTrue(fs.contains(3));
+               assertTrue(fs.contains(4));
 
                readFields[0] = "pojo1";
                sp = new SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
null, readFields, nestedPojoType, intType);
 
                fs = sp.getReadFields(0);
-               Assert.assertTrue(fs.size() == 4);
-               Assert.assertTrue(fs.contains(1));
-               Assert.assertTrue(fs.contains(2));
-               Assert.assertTrue(fs.contains(3));
-               Assert.assertTrue(fs.contains(4));
+               assertTrue(fs.size() == 4);
+               assertTrue(fs.contains(1));
+               assertTrue(fs.contains(2));
+               assertTrue(fs.contains(3));
+               assertTrue(fs.contains(4));
        }
 
        @Test
@@ -1019,10 +1133,10 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
null, readFields, pojoInTupleType, pojo2Type);
 
                FieldSet fs = sp.getReadFields(0);
-               Assert.assertTrue(fs.size() == 3);
-               Assert.assertTrue(fs.contains(0));
-               Assert.assertTrue(fs.contains(2));
-               Assert.assertTrue(fs.contains(5));
+               assertTrue(fs.size() == 3);
+               assertTrue(fs.contains(0));
+               assertTrue(fs.contains(2));
+               assertTrue(fs.contains(5));
        }
 
        @Test(expected = InvalidSemanticAnnotationException.class)
@@ -1044,12 +1158,12 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsDualFromString(dsp, 
forwardedFieldsFirst, forwardedFieldsSecond, null,
                                null, null, null, fourIntTupleType, 
fourIntTupleType, fourIntTupleType);
 
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 
1).contains(2));
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 
2).contains(3));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
1).contains(1));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
2).contains(0));
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 0).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 3).size() == 
0);
+               assertTrue(dsp.getForwardingTargetFields(0, 1).contains(2));
+               assertTrue(dsp.getForwardingTargetFields(0, 2).contains(3));
+               assertTrue(dsp.getForwardingTargetFields(1, 1).contains(1));
+               assertTrue(dsp.getForwardingTargetFields(1, 2).contains(0));
+               assertTrue(dsp.getForwardingTargetFields(0, 0).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(1, 3).size() == 0);
 
                forwardedFieldsFirst[0] = "f1->f0;f3->f1";
                forwardedFieldsSecond[0] = "*->f2.*";
@@ -1057,14 +1171,14 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsDualFromString(dsp, 
forwardedFieldsFirst, forwardedFieldsSecond, null,
                                null, null, null, fourIntTupleType, pojoType, 
pojoInTupleType);
 
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 0).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 
1).contains(0));
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 2).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 
3).contains(1));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
0).contains(2));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
1).contains(3));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
2).contains(4));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
3).contains(5));
+               assertTrue(dsp.getForwardingTargetFields(0, 0).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 1).contains(0));
+               assertTrue(dsp.getForwardingTargetFields(0, 2).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 3).contains(1));
+               assertTrue(dsp.getForwardingTargetFields(1, 0).contains(2));
+               assertTrue(dsp.getForwardingTargetFields(1, 1).contains(3));
+               assertTrue(dsp.getForwardingTargetFields(1, 2).contains(4));
+               assertTrue(dsp.getForwardingTargetFields(1, 3).contains(5));
 
                forwardedFieldsFirst[0] = "f1.f0.f2->int1; f2->pojo1.int3";
                forwardedFieldsSecond[0] = "string1; int2->pojo1.int1; 
int1->pojo1.int2";
@@ -1072,17 +1186,17 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsDualFromString(dsp, 
forwardedFieldsFirst, forwardedFieldsSecond, null,
                                null, null, null, deepNestedTupleType, 
pojoType, nestedPojoType);
 
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 0).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 1).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 2).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 
3).contains(0));
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 4).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 5).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 
6).contains(3));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
0).contains(2));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
1).contains(1));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 2).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
3).contains(5));
+               assertTrue(dsp.getForwardingTargetFields(0, 0).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 1).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 2).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 3).contains(0));
+               assertTrue(dsp.getForwardingTargetFields(0, 4).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 5).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 6).contains(3));
+               assertTrue(dsp.getForwardingTargetFields(1, 0).contains(2));
+               assertTrue(dsp.getForwardingTargetFields(1, 1).contains(1));
+               assertTrue(dsp.getForwardingTargetFields(1, 2).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(1, 3).contains(5));
 
                String[] forwardedFieldsFirst2 = { "f1.f0.f2->int1", 
"f2->pojo1.int3" };
                String[] forwardedFieldsSecond2 = { "string1", 
"int2->pojo1.int1", "int1->pojo1.int2" };
@@ -1090,17 +1204,17 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsDualFromString(dsp, 
forwardedFieldsFirst2, forwardedFieldsSecond2, null,
                                null, null, null, deepNestedTupleType, 
pojoType, nestedPojoType);
 
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 0).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 1).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 2).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 
3).contains(0));
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 4).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 5).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 
6).contains(3));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
0).contains(2));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
1).contains(1));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 2).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
3).contains(5));
+               assertTrue(dsp.getForwardingTargetFields(0, 0).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 1).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 2).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 3).contains(0));
+               assertTrue(dsp.getForwardingTargetFields(0, 4).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 5).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 6).contains(3));
+               assertTrue(dsp.getForwardingTargetFields(1, 0).contains(2));
+               assertTrue(dsp.getForwardingTargetFields(1, 1).contains(1));
+               assertTrue(dsp.getForwardingTargetFields(1, 2).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(1, 3).contains(5));
        }
 
 
@@ -1112,12 +1226,12 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsDualFromString(dsp, null, null,
                                nonNorwardedFieldsFirst, 
nonNorwardedFieldsSecond, null, null, threeIntTupleType, threeIntTupleType, 
threeIntTupleType);
 
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 1).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 2).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 0).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
1).contains(1));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
2).contains(2));
+               assertTrue(dsp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(dsp.getForwardingTargetFields(0, 1).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 2).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(1, 0).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(1, 1).contains(1));
+               assertTrue(dsp.getForwardingTargetFields(1, 2).contains(2));
 
                nonNorwardedFieldsFirst[0] = "f1";
                nonNorwardedFieldsSecond[0] = "";
@@ -1125,12 +1239,12 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsDualFromString(dsp, null, null,
                                nonNorwardedFieldsFirst, null, null, null, 
threeIntTupleType, fiveIntTupleType, threeIntTupleType);
 
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 1).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 
2).contains(2));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 0).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 1).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 2).size() == 
0);
+               assertTrue(dsp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(dsp.getForwardingTargetFields(0, 1).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 2).contains(2));
+               assertTrue(dsp.getForwardingTargetFields(1, 0).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(1, 1).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(1, 2).size() == 0);
 
                nonNorwardedFieldsFirst[0] = "";
                nonNorwardedFieldsSecond[0] = "f2;f0";
@@ -1138,33 +1252,33 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsDualFromString(dsp, null, null,
                                null, nonNorwardedFieldsSecond, null, null, 
fiveIntTupleType, threeIntTupleType, threeIntTupleType);
 
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 0).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 1).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 2).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 0).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
1).contains(1));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 2).size() == 
0);
+               assertTrue(dsp.getForwardingTargetFields(0, 0).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 1).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 2).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(1, 0).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(1, 1).contains(1));
+               assertTrue(dsp.getForwardingTargetFields(1, 2).size() == 0);
 
                String[] nonForwardedFields = {"f1", "f3"};
                dsp = new DualInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsDualFromString(dsp, null, null,
                                nonForwardedFields, null, null, null, 
fiveIntTupleType, threeIntTupleType, fiveIntTupleType);
 
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 1).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 
2).contains(2));
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 3).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 
4).contains(4));
+               assertTrue(dsp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(dsp.getForwardingTargetFields(0, 1).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 2).contains(2));
+               assertTrue(dsp.getForwardingTargetFields(0, 3).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(0, 4).contains(4));
 
                dsp = new DualInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsDualFromString(dsp, null, null,
                                null, nonForwardedFields, null, null, 
threeIntTupleType, fiveIntTupleType, fiveIntTupleType);
 
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
0).contains(0));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 1).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
2).contains(2));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 3).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
4).contains(4));
+               assertTrue(dsp.getForwardingTargetFields(1, 0).contains(0));
+               assertTrue(dsp.getForwardingTargetFields(1, 1).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(1, 2).contains(2));
+               assertTrue(dsp.getForwardingTargetFields(1, 3).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(1, 4).contains(4));
        }
 
        @Test(expected = InvalidSemanticAnnotationException.class)
@@ -1193,11 +1307,11 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsDualFromString(dsp, null, null,
                                null, null, readFieldsFirst, readFieldsSecond, 
threeIntTupleType, threeIntTupleType, threeIntTupleType);
 
-               Assert.assertTrue(dsp.getReadFields(0).size() == 2);
-               Assert.assertTrue(dsp.getReadFields(0).contains(1));
-               Assert.assertTrue(dsp.getReadFields(0).contains(2));
-               Assert.assertTrue(dsp.getReadFields(1).size() == 1);
-               Assert.assertTrue(dsp.getReadFields(1).contains(0));
+               assertTrue(dsp.getReadFields(0).size() == 2);
+               assertTrue(dsp.getReadFields(0).contains(1));
+               assertTrue(dsp.getReadFields(0).contains(2));
+               assertTrue(dsp.getReadFields(1).size() == 1);
+               assertTrue(dsp.getReadFields(1).contains(0));
 
                readFieldsFirst[0] = "f0.*; f2";
                readFieldsSecond[0] = "int1; string1";
@@ -1205,14 +1319,14 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsDualFromString(dsp, null, null,
                                null, null, readFieldsFirst, readFieldsSecond, 
nestedTupleType, pojoType, threeIntTupleType);
 
-               Assert.assertTrue(dsp.getReadFields(0).size() == 4);
-               Assert.assertTrue(dsp.getReadFields(0).contains(0));
-               Assert.assertTrue(dsp.getReadFields(0).contains(1));
-               Assert.assertTrue(dsp.getReadFields(0).contains(2));
-               Assert.assertTrue(dsp.getReadFields(0).contains(4));
-               Assert.assertTrue(dsp.getReadFields(1).size() == 2);
-               Assert.assertTrue(dsp.getReadFields(1).contains(0));
-               Assert.assertTrue(dsp.getReadFields(1).contains(3));
+               assertTrue(dsp.getReadFields(0).size() == 4);
+               assertTrue(dsp.getReadFields(0).contains(0));
+               assertTrue(dsp.getReadFields(0).contains(1));
+               assertTrue(dsp.getReadFields(0).contains(2));
+               assertTrue(dsp.getReadFields(0).contains(4));
+               assertTrue(dsp.getReadFields(1).size() == 2);
+               assertTrue(dsp.getReadFields(1).contains(0));
+               assertTrue(dsp.getReadFields(1).contains(3));
 
                readFieldsFirst[0] = "pojo1.int2; string1";
                readFieldsSecond[0] = "f2.int2";
@@ -1220,25 +1334,25 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsDualFromString(dsp, null, null,
                                null, null, readFieldsFirst, readFieldsSecond, 
nestedPojoType, pojoInTupleType, threeIntTupleType);
 
-               Assert.assertTrue(dsp.getReadFields(0).size() == 2);
-               Assert.assertTrue(dsp.getReadFields(0).contains(2));
-               Assert.assertTrue(dsp.getReadFields(0).contains(5));
-               Assert.assertTrue(dsp.getReadFields(1).size() == 1);
-               Assert.assertTrue(dsp.getReadFields(1).contains(3));
+               assertTrue(dsp.getReadFields(0).size() == 2);
+               assertTrue(dsp.getReadFields(0).contains(2));
+               assertTrue(dsp.getReadFields(0).contains(5));
+               assertTrue(dsp.getReadFields(1).size() == 1);
+               assertTrue(dsp.getReadFields(1).contains(3));
 
                String[] readFields = {"f0", "f2", "f4"};
                dsp = new DualInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsDualFromString(dsp, null, null,
                                null, null, readFields, readFields, 
fiveIntTupleType, fiveIntTupleType, threeIntTupleType);
 
-               Assert.assertTrue(dsp.getReadFields(0).size() == 3);
-               Assert.assertTrue(dsp.getReadFields(0).contains(0));
-               Assert.assertTrue(dsp.getReadFields(0).contains(2));
-               Assert.assertTrue(dsp.getReadFields(0).contains(4));
-               Assert.assertTrue(dsp.getReadFields(1).size() == 3);
-               Assert.assertTrue(dsp.getReadFields(1).contains(0));
-               Assert.assertTrue(dsp.getReadFields(1).contains(2));
-               Assert.assertTrue(dsp.getReadFields(1).contains(4));
+               assertTrue(dsp.getReadFields(0).size() == 3);
+               assertTrue(dsp.getReadFields(0).contains(0));
+               assertTrue(dsp.getReadFields(0).contains(2));
+               assertTrue(dsp.getReadFields(0).contains(4));
+               assertTrue(dsp.getReadFields(1).size() == 3);
+               assertTrue(dsp.getReadFields(1).contains(0));
+               assertTrue(dsp.getReadFields(1).contains(2));
+               assertTrue(dsp.getReadFields(1).contains(4));
        }
 
        // 
--------------------------------------------------------------------------------------------
@@ -1252,11 +1366,11 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, 
forwardedFields, null, readFields, threeIntTupleType, fiveIntTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
1).contains(2));
-               Assert.assertTrue(sp.getReadFields(0).size() == 2);
-               Assert.assertTrue(sp.getReadFields(0).contains(0));
-               Assert.assertTrue(sp.getReadFields(0).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).contains(2));
+               assertTrue(sp.getReadFields(0).size() == 2);
+               assertTrue(sp.getReadFields(0).contains(0));
+               assertTrue(sp.getReadFields(0).contains(2));
        }
 
        @Test
@@ -1266,12 +1380,12 @@ public class SemanticPropUtilTest {
                SingleInputSemanticProperties sp = new 
SingleInputSemanticProperties();
                SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, 
nonForwardedFields, readFields, threeIntTupleType, threeIntTupleType);
 
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 
0).contains(0));
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 1).size() == 
0);
-               Assert.assertTrue(sp.getForwardingTargetFields(0, 2).size() == 
0);
-               Assert.assertTrue(sp.getReadFields(0).size() == 2);
-               Assert.assertTrue(sp.getReadFields(0).contains(0));
-               Assert.assertTrue(sp.getReadFields(0).contains(2));
+               assertTrue(sp.getForwardingTargetFields(0, 0).contains(0));
+               assertTrue(sp.getForwardingTargetFields(0, 1).size() == 0);
+               assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0);
+               assertTrue(sp.getReadFields(0).size() == 2);
+               assertTrue(sp.getReadFields(0).contains(0));
+               assertTrue(sp.getReadFields(0).contains(2));
        }
 
        @Test
@@ -1284,17 +1398,17 @@ public class SemanticPropUtilTest {
                SemanticPropUtil.getSemanticPropsDualFromString(dsp, 
forwardedFieldsFirst, forwardedFieldsSecond, null,
                                null, readFieldsFirst, readFieldsSecond, 
fourIntTupleType, fourIntTupleType, fourIntTupleType);
 
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 
1).contains(2));
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 
2).contains(3));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
1).contains(1));
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 
2).contains(0));
-               Assert.assertTrue(dsp.getForwardingTargetFields(0, 0).size() == 
0);
-               Assert.assertTrue(dsp.getForwardingTargetFields(1, 3).size() == 
0);
-               Assert.assertTrue(dsp.getReadFields(0).size() == 2);
-               Assert.assertTrue(dsp.getReadFields(0).contains(0));
-               Assert.assertTrue(dsp.getReadFields(0).contains(2));
-               Assert.assertTrue(dsp.getReadFields(1).size() == 1);
-               Assert.assertTrue(dsp.getReadFields(1).contains(1));
+               assertTrue(dsp.getForwardingTargetFields(0, 1).contains(2));
+               assertTrue(dsp.getForwardingTargetFields(0, 2).contains(3));
+               assertTrue(dsp.getForwardingTargetFields(1, 1).contains(1));
+               assertTrue(dsp.getForwardingTargetFields(1, 2).contains(0));
+               assertTrue(dsp.getForwardingTargetFields(0, 0).size() == 0);
+               assertTrue(dsp.getForwardingTargetFields(1, 3).size() == 0);
+               assertTrue(dsp.getReadFields(0).size() == 2);
+               assertTrue(dsp.getReadFields(0).contains(0));
+               assertTrue(dsp.getReadFields(0).contains(2));
+               assertTrue(dsp.getReadFields(1).size() == 1);
+               assertTrue(dsp.getReadFields(1).contains(1));
 
        }
 

Reply via email to