test_class.declarator: threeIntTupleType = new TupleTypeInfo<Tuple3<Integer, Integer, Integer>>(BasicTypeInfo.INT_TYPE_INFO,
  			BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO)
test_class.modifier: private final
test_class.original_string: private final TypeInformation<?> threeIntTupleType = new TupleTypeInfo<Tuple3<Integer, Integer, Integer>>(BasicTypeInfo.INT_TYPE_INFO,
  			BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO);
test_class.type: TypeInformation<?>
test_class.var_name: threeIntTupleType
test_class.declarator: fourIntTupleType = new TupleTypeInfo<Tuple4<Integer, Integer, Integer, Integer>>(BasicTypeInfo.INT_TYPE_INFO,
  			BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO)
test_class.modifier: private final
test_class.original_string: private final TypeInformation<?> fourIntTupleType = new TupleTypeInfo<Tuple4<Integer, Integer, Integer, Integer>>(BasicTypeInfo.INT_TYPE_INFO,
  			BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO);
test_class.type: TypeInformation<?>
test_class.var_name: fourIntTupleType
test_class.declarator: fiveIntTupleType = new TupleTypeInfo<Tuple5<Integer, Integer, Integer, Integer, Integer>>(BasicTypeInfo.INT_TYPE_INFO,
  			BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO)
test_class.modifier: private final
test_class.original_string: private final TypeInformation<?> fiveIntTupleType = new TupleTypeInfo<Tuple5<Integer, Integer, Integer, Integer, Integer>>(BasicTypeInfo.INT_TYPE_INFO,
  			BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO);
test_class.type: TypeInformation<?>
test_class.var_name: fiveIntTupleType
test_class.declarator: threeMixedTupleType = new TupleTypeInfo<Tuple3<Integer, Long, String>>(BasicTypeInfo.INT_TYPE_INFO,
  			BasicTypeInfo.LONG_TYPE_INFO, BasicTypeInfo.STRING_TYPE_INFO)
test_class.modifier: private final
test_class.original_string: private final TypeInformation<?> threeMixedTupleType = new TupleTypeInfo<Tuple3<Integer, Long, String>>(BasicTypeInfo.INT_TYPE_INFO,
  			BasicTypeInfo.LONG_TYPE_INFO, BasicTypeInfo.STRING_TYPE_INFO);
test_class.type: TypeInformation<?>
test_class.var_name: threeMixedTupleType
test_class.declarator: nestedTupleType = new TupleTypeInfo<Tuple3<Tuple3<Integer, Integer, Integer>, Integer, Integer>>(threeIntTupleType,
  			BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO)
test_class.modifier: private final
test_class.original_string: private final TypeInformation<?> nestedTupleType = new TupleTypeInfo<Tuple3<Tuple3<Integer, Integer, Integer>, Integer, Integer>>(threeIntTupleType,
  			BasicTypeInfo.INT_TYPE_INFO, BasicTypeInfo.INT_TYPE_INFO);
test_class.type: TypeInformation<?>
test_class.var_name: nestedTupleType
test_class.declarator: deepNestedTupleType = new TupleTypeInfo<Tuple3<Integer, Tuple3<Tuple3<Integer, Integer, Integer>, Integer, Integer>, Integer>>(
  			BasicTypeInfo.INT_TYPE_INFO, nestedTupleType, BasicTypeInfo.INT_TYPE_INFO)
test_class.modifier: private final
test_class.original_string: private final TypeInformation<?> deepNestedTupleType = new TupleTypeInfo<Tuple3<Integer, Tuple3<Tuple3<Integer, Integer, Integer>, Integer, Integer>, Integer>>(
  			BasicTypeInfo.INT_TYPE_INFO, nestedTupleType, BasicTypeInfo.INT_TYPE_INFO);
test_class.type: TypeInformation<?>
test_class.var_name: deepNestedTupleType
test_class.declarator: pojoType = TypeExtractor.getForClass(TestPojo.class)
test_class.modifier: private final
test_class.original_string: private final TypeInformation<?> pojoType = TypeExtractor.getForClass(TestPojo.class);
test_class.type: TypeInformation<?>
test_class.var_name: pojoType
test_class.declarator: pojo2Type = TypeExtractor.getForClass(TestPojo2.class)
test_class.modifier: private final
test_class.original_string: private final TypeInformation<?> pojo2Type = TypeExtractor.getForClass(TestPojo2.class);
test_class.type: TypeInformation<?>
test_class.var_name: pojo2Type
test_class.declarator: nestedPojoType = TypeExtractor.getForClass(NestedTestPojo.class)
test_class.modifier: private final
test_class.original_string: private final TypeInformation<?> nestedPojoType = TypeExtractor.getForClass(NestedTestPojo.class);
test_class.type: TypeInformation<?>
test_class.var_name: nestedPojoType
test_class.declarator: pojoInTupleType = new TupleTypeInfo<Tuple3<Integer, Integer, TestPojo>>(BasicTypeInfo.INT_TYPE_INFO,
  			BasicTypeInfo.INT_TYPE_INFO, pojoType)
test_class.modifier: private final
test_class.original_string: private final TypeInformation<?> pojoInTupleType = new TupleTypeInfo<Tuple3<Integer, Integer, TestPojo>>(BasicTypeInfo.INT_TYPE_INFO,
  			BasicTypeInfo.INT_TYPE_INFO, pojoType);
test_class.type: TypeInformation<?>
test_class.var_name: pojoInTupleType
test_class.declarator: intType = BasicTypeInfo.INT_TYPE_INFO
test_class.modifier: private final
test_class.original_string: private final TypeInformation<?> intType = BasicTypeInfo.INT_TYPE_INFO;
test_class.type: TypeInformation<?>
test_class.var_name: intType
test_class.file: flink-java/src/test/java/org/apache/flink/api/java/functions/SemanticPropUtilTest.java
test_class.identifier: SemanticPropUtilTest
test_case.body: @Test
  	public void testSingleProjectionProperties() {
  
  		int[] pMap = new int[] {3,0,4};
  		SingleInputSemanticProperties sp = SemanticPropUtil.createProjectionPropertiesSingle(pMap, (CompositeType<?>) fiveIntTupleType);
  		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);
  		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);
  		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);
  		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);
  		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));
  
  	}
test_case.class_method_signature: SemanticPropUtilTest.testSingleProjectionProperties()
test_case.full_signature: @Test public void testSingleProjectionProperties()
test_case.identifier: testSingleProjectionProperties
test_case.invocations: createProjectionPropertiesSingle assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields createProjectionPropertiesSingle assertTrue size getForwardingTargetFields assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields assertTrue size getForwardingTargetFields assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields createProjectionPropertiesSingle assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields createProjectionPropertiesSingle assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields createProjectionPropertiesSingle assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields assertTrue contains getForwardingTargetFields
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testSingleProjectionProperties()
focal_class.declarator: REGEX_WILDCARD = "[\\"+ Keys.ExpressionKeys.SELECT_ALL_CHAR+"\\"+ Keys.ExpressionKeys.SELECT_ALL_CHAR_SCALA+"]"
focal_class.modifier: private final static
focal_class.original_string: private final static String REGEX_WILDCARD = "[\\"+ Keys.ExpressionKeys.SELECT_ALL_CHAR+"\\"+ Keys.ExpressionKeys.SELECT_ALL_CHAR_SCALA+"]";
focal_class.type: String
focal_class.var_name: REGEX_WILDCARD
focal_class.declarator: REGEX_SINGLE_FIELD = "[\\p{L}\\p{Digit}_\\$]+"
focal_class.modifier: private final static
focal_class.original_string: private final static String REGEX_SINGLE_FIELD = "[\\p{L}\\p{Digit}_\\$]+";
focal_class.type: String
focal_class.var_name: REGEX_SINGLE_FIELD
focal_class.declarator: REGEX_NESTED_FIELDS = "((" + REGEX_SINGLE_FIELD + "\\.)*" + REGEX_SINGLE_FIELD + ")(\\."+ REGEX_WILDCARD +")?"
focal_class.modifier: private final static
focal_class.original_string: private final static String REGEX_NESTED_FIELDS = "((" + REGEX_SINGLE_FIELD + "\\.)*" + REGEX_SINGLE_FIELD + ")(\\."+ REGEX_WILDCARD +")?";
focal_class.type: String
focal_class.var_name: REGEX_NESTED_FIELDS
focal_class.declarator: REGEX_LIST = "((" + REGEX_NESTED_FIELDS + ";)*(" + REGEX_NESTED_FIELDS + ");?)"
focal_class.modifier: private final static
focal_class.original_string: private final static String REGEX_LIST = "((" + REGEX_NESTED_FIELDS + ";)*(" + REGEX_NESTED_FIELDS + ");?)";
focal_class.type: String
focal_class.var_name: REGEX_LIST
focal_class.declarator: REGEX_FORWARD = "(("+ REGEX_NESTED_FIELDS +"|"+ REGEX_WILDCARD +")->(" + REGEX_NESTED_FIELDS + "|"+ REGEX_WILDCARD +"))"
focal_class.modifier: private final static
focal_class.original_string: private final static String REGEX_FORWARD = "(("+ REGEX_NESTED_FIELDS +"|"+ REGEX_WILDCARD +")->(" + REGEX_NESTED_FIELDS + "|"+ REGEX_WILDCARD +"))";
focal_class.type: String
focal_class.var_name: REGEX_FORWARD
focal_class.declarator: REGEX_FIELD_OR_FORWARD = "(" + REGEX_NESTED_FIELDS + "|" + REGEX_FORWARD + ")"
focal_class.modifier: private final static
focal_class.original_string: private final static String REGEX_FIELD_OR_FORWARD = "(" + REGEX_NESTED_FIELDS + "|" + REGEX_FORWARD + ")";
focal_class.type: String
focal_class.var_name: REGEX_FIELD_OR_FORWARD
focal_class.declarator: REGEX_ANNOTATION = "((" + REGEX_FIELD_OR_FORWARD + ";)*(" + REGEX_FIELD_OR_FORWARD + ");?)"
focal_class.modifier: private final static
focal_class.original_string: private final static String REGEX_ANNOTATION = "((" + REGEX_FIELD_OR_FORWARD + ";)*(" + REGEX_FIELD_OR_FORWARD + ");?)";
focal_class.type: String
focal_class.var_name: REGEX_ANNOTATION
focal_class.declarator: PATTERN_WILDCARD = Pattern.compile(REGEX_WILDCARD)
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern PATTERN_WILDCARD = Pattern.compile(REGEX_WILDCARD);
focal_class.type: Pattern
focal_class.var_name: PATTERN_WILDCARD
focal_class.declarator: PATTERN_FORWARD = Pattern.compile(REGEX_FORWARD)
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern PATTERN_FORWARD = Pattern.compile(REGEX_FORWARD);
focal_class.type: Pattern
focal_class.var_name: PATTERN_FORWARD
focal_class.declarator: PATTERN_ANNOTATION = Pattern.compile(REGEX_ANNOTATION)
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern PATTERN_ANNOTATION = Pattern.compile(REGEX_ANNOTATION);
focal_class.type: Pattern
focal_class.var_name: PATTERN_ANNOTATION
focal_class.declarator: PATTERN_LIST = Pattern.compile(REGEX_LIST)
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern PATTERN_LIST = Pattern.compile(REGEX_LIST);
focal_class.type: Pattern
focal_class.var_name: PATTERN_LIST
focal_class.declarator: PATTERN_FIELD = Pattern.compile(REGEX_NESTED_FIELDS)
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern PATTERN_FIELD = Pattern.compile(REGEX_NESTED_FIELDS);
focal_class.type: Pattern
focal_class.var_name: PATTERN_FIELD
focal_class.file: flink-java/src/main/java/org/apache/flink/api/java/functions/SemanticPropUtil.java
focal_class.identifier: SemanticPropUtil
focal_class.class_method_signature: SemanticPropUtil.createProjectionPropertiesSingle(int[] fields, CompositeType<?> inType)
focal_class.full_signature: public static SingleInputSemanticProperties createProjectionPropertiesSingle(int[] fields, CompositeType<?> inType)
focal_class.identifier: createProjectionPropertiesSingle
focal_class.modifiers: public static
focal_class.parameters: (int[] fields, CompositeType<?> inType)
focal_class.return: SingleInputSemanticProperties
focal_class.signature: SingleInputSemanticProperties createProjectionPropertiesSingle(int[] fields, CompositeType<?> inType)
focal_class.class_method_signature: SemanticPropUtil.createProjectionPropertiesDual(
  			int[] fields, boolean[] isFromFirst, TypeInformation<?> inType1, TypeInformation<?> inType2)
focal_class.full_signature: public static DualInputSemanticProperties createProjectionPropertiesDual(
  			int[] fields, boolean[] isFromFirst, TypeInformation<?> inType1, TypeInformation<?> inType2)
focal_class.identifier: createProjectionPropertiesDual
focal_class.modifiers: public static
focal_class.parameters: (
  			int[] fields, boolean[] isFromFirst, TypeInformation<?> inType1, TypeInformation<?> inType2)
focal_class.return: DualInputSemanticProperties
focal_class.signature: DualInputSemanticProperties createProjectionPropertiesDual(
  			int[] fields, boolean[] isFromFirst, TypeInformation<?> inType1, TypeInformation<?> inType2)
focal_class.class_method_signature: SemanticPropUtil.addSourceFieldOffset(SingleInputSemanticProperties props,
  																		int numInputFields, int offset)
focal_class.full_signature: public static SingleInputSemanticProperties addSourceFieldOffset(SingleInputSemanticProperties props,
  																		int numInputFields, int offset)
focal_class.identifier: addSourceFieldOffset
focal_class.modifiers: public static
focal_class.parameters: (SingleInputSemanticProperties props,
  																		int numInputFields, int offset)
focal_class.return: SingleInputSemanticProperties
focal_class.signature: SingleInputSemanticProperties addSourceFieldOffset(SingleInputSemanticProperties props,
  																		int numInputFields, int offset)
focal_class.class_method_signature: SemanticPropUtil.addSourceFieldOffsets(DualInputSemanticProperties props,
  																	int numInputFields1, int numInputFields2,
  																	int offset1, int offset2)
focal_class.full_signature: public static DualInputSemanticProperties addSourceFieldOffsets(DualInputSemanticProperties props,
  																	int numInputFields1, int numInputFields2,
  																	int offset1, int offset2)
focal_class.identifier: addSourceFieldOffsets
focal_class.modifiers: public static
focal_class.parameters: (DualInputSemanticProperties props,
  																	int numInputFields1, int numInputFields2,
  																	int offset1, int offset2)
focal_class.return: DualInputSemanticProperties
focal_class.signature: DualInputSemanticProperties addSourceFieldOffsets(DualInputSemanticProperties props,
  																	int numInputFields1, int numInputFields2,
  																	int offset1, int offset2)
focal_class.class_method_signature: SemanticPropUtil.getSemanticPropsSingle(
  			Set<Annotation> set, TypeInformation<?> inType, TypeInformation<?> outType)
focal_class.full_signature: public static SingleInputSemanticProperties getSemanticPropsSingle(
  			Set<Annotation> set, TypeInformation<?> inType, TypeInformation<?> outType)
focal_class.identifier: getSemanticPropsSingle
focal_class.modifiers: public static
focal_class.parameters: (
  			Set<Annotation> set, TypeInformation<?> inType, TypeInformation<?> outType)
focal_class.return: SingleInputSemanticProperties
focal_class.signature: SingleInputSemanticProperties getSemanticPropsSingle(
  			Set<Annotation> set, TypeInformation<?> inType, TypeInformation<?> outType)
focal_class.class_method_signature: SemanticPropUtil.getSemanticPropsDual(
  			Set<Annotation> set, TypeInformation<?> inType1, TypeInformation<?> inType2, TypeInformation<?> outType)
focal_class.full_signature: public static DualInputSemanticProperties getSemanticPropsDual(
  			Set<Annotation> set, TypeInformation<?> inType1, TypeInformation<?> inType2, TypeInformation<?> outType)
focal_class.identifier: getSemanticPropsDual
focal_class.modifiers: public static
focal_class.parameters: (
  			Set<Annotation> set, TypeInformation<?> inType1, TypeInformation<?> inType2, TypeInformation<?> outType)
focal_class.return: DualInputSemanticProperties
focal_class.signature: DualInputSemanticProperties getSemanticPropsDual(
  			Set<Annotation> set, TypeInformation<?> inType1, TypeInformation<?> inType2, TypeInformation<?> outType)
focal_class.class_method_signature: SemanticPropUtil.getSemanticPropsSingleFromString(SingleInputSemanticProperties result,
  														String[] forwarded, String[] nonForwarded, String[] readSet,
  														TypeInformation<?> inType, TypeInformation<?> outType)
focal_class.full_signature: public static void getSemanticPropsSingleFromString(SingleInputSemanticProperties result,
  														String[] forwarded, String[] nonForwarded, String[] readSet,
  														TypeInformation<?> inType, TypeInformation<?> outType)
focal_class.identifier: getSemanticPropsSingleFromString
focal_class.modifiers: public static
focal_class.parameters: (SingleInputSemanticProperties result,
  														String[] forwarded, String[] nonForwarded, String[] readSet,
  														TypeInformation<?> inType, TypeInformation<?> outType)
focal_class.return: void
focal_class.signature: void getSemanticPropsSingleFromString(SingleInputSemanticProperties result,
  														String[] forwarded, String[] nonForwarded, String[] readSet,
  														TypeInformation<?> inType, TypeInformation<?> outType)
focal_class.class_method_signature: SemanticPropUtil.getSemanticPropsSingleFromString(SingleInputSemanticProperties result,
  			String[] forwarded, String[] nonForwarded, String[] readSet,
  			TypeInformation<?> inType, TypeInformation<?> outType,
  			boolean skipIncompatibleTypes)
focal_class.full_signature: public static void getSemanticPropsSingleFromString(SingleInputSemanticProperties result,
  			String[] forwarded, String[] nonForwarded, String[] readSet,
  			TypeInformation<?> inType, TypeInformation<?> outType,
  			boolean skipIncompatibleTypes)
focal_class.identifier: getSemanticPropsSingleFromString
focal_class.modifiers: public static
focal_class.parameters: (SingleInputSemanticProperties result,
  			String[] forwarded, String[] nonForwarded, String[] readSet,
  			TypeInformation<?> inType, TypeInformation<?> outType,
  			boolean skipIncompatibleTypes)
focal_class.return: void
focal_class.signature: void getSemanticPropsSingleFromString(SingleInputSemanticProperties result,
  			String[] forwarded, String[] nonForwarded, String[] readSet,
  			TypeInformation<?> inType, TypeInformation<?> outType,
  			boolean skipIncompatibleTypes)
focal_class.class_method_signature: SemanticPropUtil.getSemanticPropsDualFromString(DualInputSemanticProperties result,
  			String[] forwardedFirst, String[] forwardedSecond,
  			String[] nonForwardedFirst, String[] nonForwardedSecond, String[]
  			readFieldsFirst, String[] readFieldsSecond,
  			TypeInformation<?> inType1, TypeInformation<?> inType2, TypeInformation<?> outType)
focal_class.full_signature: public static void getSemanticPropsDualFromString(DualInputSemanticProperties result,
  			String[] forwardedFirst, String[] forwardedSecond,
  			String[] nonForwardedFirst, String[] nonForwardedSecond, String[]
  			readFieldsFirst, String[] readFieldsSecond,
  			TypeInformation<?> inType1, TypeInformation<?> inType2, TypeInformation<?> outType)
focal_class.identifier: getSemanticPropsDualFromString
focal_class.modifiers: public static
focal_class.parameters: (DualInputSemanticProperties result,
  			String[] forwardedFirst, String[] forwardedSecond,
  			String[] nonForwardedFirst, String[] nonForwardedSecond, String[]
  			readFieldsFirst, String[] readFieldsSecond,
  			TypeInformation<?> inType1, TypeInformation<?> inType2, TypeInformation<?> outType)
focal_class.return: void
focal_class.signature: void getSemanticPropsDualFromString(DualInputSemanticProperties result,
  			String[] forwardedFirst, String[] forwardedSecond,
  			String[] nonForwardedFirst, String[] nonForwardedSecond, String[]
  			readFieldsFirst, String[] readFieldsSecond,
  			TypeInformation<?> inType1, TypeInformation<?> inType2, TypeInformation<?> outType)
focal_class.class_method_signature: SemanticPropUtil.getSemanticPropsDualFromString(DualInputSemanticProperties result,
  			String[] forwardedFirst, String[] forwardedSecond,
  			String[] nonForwardedFirst, String[] nonForwardedSecond, String[]
  			readFieldsFirst, String[] readFieldsSecond,
  			TypeInformation<?> inType1, TypeInformation<?> inType2, TypeInformation<?> outType,
  			boolean skipIncompatibleTypes)
focal_class.full_signature: public static void getSemanticPropsDualFromString(DualInputSemanticProperties result,
  			String[] forwardedFirst, String[] forwardedSecond,
  			String[] nonForwardedFirst, String[] nonForwardedSecond, String[]
  			readFieldsFirst, String[] readFieldsSecond,
  			TypeInformation<?> inType1, TypeInformation<?> inType2, TypeInformation<?> outType,
  			boolean skipIncompatibleTypes)
focal_class.identifier: getSemanticPropsDualFromString
focal_class.modifiers: public static
focal_class.parameters: (DualInputSemanticProperties result,
  			String[] forwardedFirst, String[] forwardedSecond,
  			String[] nonForwardedFirst, String[] nonForwardedSecond, String[]
  			readFieldsFirst, String[] readFieldsSecond,
  			TypeInformation<?> inType1, TypeInformation<?> inType2, TypeInformation<?> outType,
  			boolean skipIncompatibleTypes)
focal_class.return: void
focal_class.signature: void getSemanticPropsDualFromString(DualInputSemanticProperties result,
  			String[] forwardedFirst, String[] forwardedSecond,
  			String[] nonForwardedFirst, String[] nonForwardedSecond, String[]
  			readFieldsFirst, String[] readFieldsSecond,
  			TypeInformation<?> inType1, TypeInformation<?> inType2, TypeInformation<?> outType,
  			boolean skipIncompatibleTypes)
focal_class.class_method_signature: SemanticPropUtil.parseForwardedFields(SemanticProperties sp, String[] forwardedStr,
  			TypeInformation<?> inType, TypeInformation<?> outType, int input, boolean skipIncompatibleTypes)
focal_class.full_signature: private static void parseForwardedFields(SemanticProperties sp, String[] forwardedStr,
  			TypeInformation<?> inType, TypeInformation<?> outType, int input, boolean skipIncompatibleTypes)
focal_class.identifier: parseForwardedFields
focal_class.modifiers: private static
focal_class.parameters: (SemanticProperties sp, String[] forwardedStr,
  			TypeInformation<?> inType, TypeInformation<?> outType, int input, boolean skipIncompatibleTypes)
focal_class.return: void
focal_class.signature: void parseForwardedFields(SemanticProperties sp, String[] forwardedStr,
  			TypeInformation<?> inType, TypeInformation<?> outType, int input, boolean skipIncompatibleTypes)
focal_class.class_method_signature: SemanticPropUtil.parseNonForwardedFields(SemanticProperties sp, String[] nonForwardedStr,
  			TypeInformation<?> inType, TypeInformation<?> outType, int input, boolean skipIncompatibleTypes)
focal_class.full_signature: private static void parseNonForwardedFields(SemanticProperties sp, String[] nonForwardedStr,
  			TypeInformation<?> inType, TypeInformation<?> outType, int input, boolean skipIncompatibleTypes)
focal_class.identifier: parseNonForwardedFields
focal_class.modifiers: private static
focal_class.parameters: (SemanticProperties sp, String[] nonForwardedStr,
  			TypeInformation<?> inType, TypeInformation<?> outType, int input, boolean skipIncompatibleTypes)
focal_class.return: void
focal_class.signature: void parseNonForwardedFields(SemanticProperties sp, String[] nonForwardedStr,
  			TypeInformation<?> inType, TypeInformation<?> outType, int input, boolean skipIncompatibleTypes)
focal_class.class_method_signature: SemanticPropUtil.parseReadFields(SemanticProperties sp, String[] readFieldStrings, TypeInformation<?> inType, int input)
focal_class.full_signature: private static void parseReadFields(SemanticProperties sp, String[] readFieldStrings, TypeInformation<?> inType, int input)
focal_class.identifier: parseReadFields
focal_class.modifiers: private static
focal_class.parameters: (SemanticProperties sp, String[] readFieldStrings, TypeInformation<?> inType, int input)
focal_class.return: void
focal_class.signature: void parseReadFields(SemanticProperties sp, String[] readFieldStrings, TypeInformation<?> inType, int input)
focal_class.class_method_signature: SemanticPropUtil.areFieldsCompatible(String sourceField, TypeInformation<?> inType, String targetField,
  			TypeInformation<?> outType, boolean throwException)
focal_class.full_signature: private static boolean areFieldsCompatible(String sourceField, TypeInformation<?> inType, String targetField,
  			TypeInformation<?> outType, boolean throwException)
focal_class.identifier: areFieldsCompatible
focal_class.modifiers: private static
focal_class.parameters: (String sourceField, TypeInformation<?> inType, String targetField,
  			TypeInformation<?> outType, boolean throwException)
focal_class.return: boolean
focal_class.signature: boolean areFieldsCompatible(String sourceField, TypeInformation<?> inType, String targetField,
  			TypeInformation<?> outType, boolean throwException)
focal_class.class_method_signature: SemanticPropUtil.getExpressionTypeInformation(String fieldStr, TypeInformation<?> typeInfo)
focal_class.full_signature: private static TypeInformation<?> getExpressionTypeInformation(String fieldStr, TypeInformation<?> typeInfo)
focal_class.identifier: getExpressionTypeInformation
focal_class.modifiers: private static
focal_class.parameters: (String fieldStr, TypeInformation<?> typeInfo)
focal_class.return: TypeInformation<?>
focal_class.signature: TypeInformation<?> getExpressionTypeInformation(String fieldStr, TypeInformation<?> typeInfo)
focal_class.class_method_signature: SemanticPropUtil.getFlatFields(String fieldStr, TypeInformation<?> typeInfo)
focal_class.full_signature: private static List<FlatFieldDescriptor> getFlatFields(String fieldStr, TypeInformation<?> typeInfo)
focal_class.identifier: getFlatFields
focal_class.modifiers: private static
focal_class.parameters: (String fieldStr, TypeInformation<?> typeInfo)
focal_class.return: List<FlatFieldDescriptor>
focal_class.signature: List<FlatFieldDescriptor> getFlatFields(String fieldStr, TypeInformation<?> typeInfo)
focal_class.class_method_signature: SemanticPropUtil.SemanticPropUtil()
focal_class.full_signature: private  SemanticPropUtil()
focal_class.identifier: SemanticPropUtil
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  SemanticPropUtil()
focal_method.body: public static SingleInputSemanticProperties createProjectionPropertiesSingle(int[] fields, CompositeType<?> inType)
  	{
  
  		Character.isJavaIdentifierStart(1);
  
  		SingleInputSemanticProperties ssp = new SingleInputSemanticProperties();
  
  		int[] sourceOffsets = new int[inType.getArity()];
  		sourceOffsets[0] = 0;
  		for(int i=1; i<inType.getArity(); i++) {
  			sourceOffsets[i] = inType.getTypeAt(i-1).getTotalFields() + sourceOffsets[i-1];
  		}
  
  		int targetOffset = 0;
  		for(int i=0; i<fields.length; i++) {
  			int sourceOffset = sourceOffsets[fields[i]];
  			int numFieldsToCopy = inType.getTypeAt(fields[i]).getTotalFields();
  
  			for(int j=0; j<numFieldsToCopy; j++) {
  				ssp.addForwardedField(sourceOffset+j, targetOffset+j);
  			}
  			targetOffset += numFieldsToCopy;
  		}
  
  		return ssp;
  	}
focal_method.class_method_signature: SemanticPropUtil.createProjectionPropertiesSingle(int[] fields, CompositeType<?> inType)
focal_method.full_signature: public static SingleInputSemanticProperties createProjectionPropertiesSingle(int[] fields, CompositeType<?> inType)
focal_method.identifier: createProjectionPropertiesSingle
focal_method.invocations: isJavaIdentifierStart getArity getArity getTotalFields getTypeAt getTotalFields getTypeAt addForwardedField
focal_method.modifiers: public static
focal_method.parameters: (int[] fields, CompositeType<?> inType)
focal_method.return: SingleInputSemanticProperties
focal_method.signature: SingleInputSemanticProperties createProjectionPropertiesSingle(int[] fields, CompositeType<?> inType)