test_class.declarator: joiner = new FlatJoinFunction<String, String, String>() {
  		@Override
  		public void join(String first, String second, Collector<String> out) throws Exception {
  			out.collect(Joiner.on(',').join(String.valueOf(first), String.valueOf(second)));
  		}
  	}
test_class.modifier: private final
test_class.original_string: private final FlatJoinFunction<String, String, String> joiner = new FlatJoinFunction<String, String, String>() {
  		@Override
  		public void join(String first, String second, Collector<String> out) throws Exception {
  			out.collect(Joiner.on(',').join(String.valueOf(first), String.valueOf(second)));
  		}
  	};
test_class.type: FlatJoinFunction<String, String, String>
test_class.var_name: joiner
test_class.declarator: baseOperator =
  			new OuterJoinOperatorBase(joiner,
  					new BinaryOperatorInformation(BasicTypeInfo.STRING_TYPE_INFO, BasicTypeInfo.STRING_TYPE_INFO,
  							BasicTypeInfo.STRING_TYPE_INFO), new int[0], new int[0], "TestJoiner", null)
test_class.modifier: @SuppressWarnings({"rawtypes", "unchecked"})
  	private final
test_class.original_string: @SuppressWarnings({"rawtypes", "unchecked"})
  	private final OuterJoinOperatorBase<String, String, String, FlatJoinFunction<String, String, String>> baseOperator =
  			new OuterJoinOperatorBase(joiner,
  					new BinaryOperatorInformation(BasicTypeInfo.STRING_TYPE_INFO, BasicTypeInfo.STRING_TYPE_INFO,
  							BasicTypeInfo.STRING_TYPE_INFO), new int[0], new int[0], "TestJoiner", null);
test_class.type: OuterJoinOperatorBase<String, String, String, FlatJoinFunction<String, String, String>>
test_class.var_name: baseOperator
test_class.file: flink-core/src/test/java/org/apache/flink/api/common/operators/base/OuterJoinOperatorBaseTest.java
test_class.identifier: OuterJoinOperatorBaseTest
test_class.interfaces: implements Serializable
test_case.body: @Test
  	public void testLeftOuterJoin() throws Exception {
  		final List<String> leftInput = Arrays.asList("foo", "foo", "foo", "bar","bar", "foobar", "foobar");
  		final List<String> rightInput = Arrays.asList("foo", "foo", "bar", "bar", "bar", "barfoo", "barfoo");
  		baseOperator.setOuterJoinType(OuterJoinOperatorBase.OuterJoinType.LEFT);
  		List<String> expected = Arrays.asList("bar,bar", "bar,bar", "bar,bar", "bar,bar", "bar,bar", "bar,bar",
  				"foo,foo", "foo,foo", "foo,foo", "foo,foo", "foo,foo", "foo,foo", "foobar,null", "foobar,null");
  		testOuterJoin(leftInput, rightInput, expected);
  	}
test_case.class_method_signature: OuterJoinOperatorBaseTest.testLeftOuterJoin()
test_case.full_signature: @Test public void testLeftOuterJoin()
test_case.identifier: testLeftOuterJoin
test_case.invocations: asList asList setOuterJoinType asList testOuterJoin
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testLeftOuterJoin()
focal_class.declarator: outerJoinType
focal_class.modifier: private
focal_class.original_string: private OuterJoinType outerJoinType;
focal_class.type: OuterJoinType
focal_class.var_name: outerJoinType
focal_class.file: flink-core/src/main/java/org/apache/flink/api/common/operators/base/OuterJoinOperatorBase.java
focal_class.identifier: OuterJoinOperatorBase
focal_class.class_method_signature: OuterJoinOperatorBase.OuterJoinOperatorBase(UserCodeWrapper<FT> udf, BinaryOperatorInformation<IN1, IN2, OUT> operatorInfo,
  			int[] keyPositions1, int[] keyPositions2, String name, OuterJoinType outerJoinType)
focal_class.full_signature: public  OuterJoinOperatorBase(UserCodeWrapper<FT> udf, BinaryOperatorInformation<IN1, IN2, OUT> operatorInfo,
  			int[] keyPositions1, int[] keyPositions2, String name, OuterJoinType outerJoinType)
focal_class.identifier: OuterJoinOperatorBase
focal_class.modifiers: public
focal_class.parameters: (UserCodeWrapper<FT> udf, BinaryOperatorInformation<IN1, IN2, OUT> operatorInfo,
  			int[] keyPositions1, int[] keyPositions2, String name, OuterJoinType outerJoinType)
focal_class.signature:  OuterJoinOperatorBase(UserCodeWrapper<FT> udf, BinaryOperatorInformation<IN1, IN2, OUT> operatorInfo,
  			int[] keyPositions1, int[] keyPositions2, String name, OuterJoinType outerJoinType)
focal_class.class_method_signature: OuterJoinOperatorBase.OuterJoinOperatorBase(FT udf, BinaryOperatorInformation<IN1, IN2, OUT> operatorInfo,
  			int[] keyPositions1, int[] keyPositions2, String name, OuterJoinType outerJoinType)
focal_class.full_signature: public  OuterJoinOperatorBase(FT udf, BinaryOperatorInformation<IN1, IN2, OUT> operatorInfo,
  			int[] keyPositions1, int[] keyPositions2, String name, OuterJoinType outerJoinType)
focal_class.identifier: OuterJoinOperatorBase
focal_class.modifiers: public
focal_class.parameters: (FT udf, BinaryOperatorInformation<IN1, IN2, OUT> operatorInfo,
  			int[] keyPositions1, int[] keyPositions2, String name, OuterJoinType outerJoinType)
focal_class.signature:  OuterJoinOperatorBase(FT udf, BinaryOperatorInformation<IN1, IN2, OUT> operatorInfo,
  			int[] keyPositions1, int[] keyPositions2, String name, OuterJoinType outerJoinType)
focal_class.class_method_signature: OuterJoinOperatorBase.OuterJoinOperatorBase(Class<? extends FT> udf, BinaryOperatorInformation<IN1, IN2, OUT> operatorInfo,
  			int[] keyPositions1, int[] keyPositions2, String name, OuterJoinType outerJoinType)
focal_class.full_signature: public  OuterJoinOperatorBase(Class<? extends FT> udf, BinaryOperatorInformation<IN1, IN2, OUT> operatorInfo,
  			int[] keyPositions1, int[] keyPositions2, String name, OuterJoinType outerJoinType)
focal_class.identifier: OuterJoinOperatorBase
focal_class.modifiers: public
focal_class.parameters: (Class<? extends FT> udf, BinaryOperatorInformation<IN1, IN2, OUT> operatorInfo,
  			int[] keyPositions1, int[] keyPositions2, String name, OuterJoinType outerJoinType)
focal_class.signature:  OuterJoinOperatorBase(Class<? extends FT> udf, BinaryOperatorInformation<IN1, IN2, OUT> operatorInfo,
  			int[] keyPositions1, int[] keyPositions2, String name, OuterJoinType outerJoinType)
focal_class.class_method_signature: OuterJoinOperatorBase.setOuterJoinType(OuterJoinType outerJoinType)
focal_class.full_signature: public void setOuterJoinType(OuterJoinType outerJoinType)
focal_class.identifier: setOuterJoinType
focal_class.modifiers: public
focal_class.parameters: (OuterJoinType outerJoinType)
focal_class.return: void
focal_class.signature: void setOuterJoinType(OuterJoinType outerJoinType)
focal_class.class_method_signature: OuterJoinOperatorBase.getOuterJoinType()
focal_class.full_signature: public OuterJoinType getOuterJoinType()
focal_class.identifier: getOuterJoinType
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: OuterJoinType
focal_class.signature: OuterJoinType getOuterJoinType()
focal_class.class_method_signature: OuterJoinOperatorBase.executeOnCollections(List<IN1> leftInput, List<IN2> rightInput, RuntimeContext runtimeContext, ExecutionConfig executionConfig)
focal_class.full_signature: @Override protected List<OUT> executeOnCollections(List<IN1> leftInput, List<IN2> rightInput, RuntimeContext runtimeContext, ExecutionConfig executionConfig)
focal_class.identifier: executeOnCollections
focal_class.modifiers: @Override protected
focal_class.parameters: (List<IN1> leftInput, List<IN2> rightInput, RuntimeContext runtimeContext, ExecutionConfig executionConfig)
focal_class.return: List<OUT>
focal_class.signature: List<OUT> executeOnCollections(List<IN1> leftInput, List<IN2> rightInput, RuntimeContext runtimeContext, ExecutionConfig executionConfig)
focal_class.class_method_signature: OuterJoinOperatorBase.buildComparatorFor(int input, ExecutionConfig executionConfig, TypeInformation<T> typeInformation)
focal_class.full_signature: @SuppressWarnings("unchecked") private TypeComparator<T> buildComparatorFor(int input, ExecutionConfig executionConfig, TypeInformation<T> typeInformation)
focal_class.identifier: buildComparatorFor
focal_class.modifiers: @SuppressWarnings("unchecked") private
focal_class.parameters: (int input, ExecutionConfig executionConfig, TypeInformation<T> typeInformation)
focal_class.return: TypeComparator<T>
focal_class.signature: TypeComparator<T> buildComparatorFor(int input, ExecutionConfig executionConfig, TypeInformation<T> typeInformation)
focal_class.superclass: extends JoinOperatorBase<IN1, IN2, OUT, FT>
focal_method.body: public void setOuterJoinType(OuterJoinType outerJoinType) {
  		this.outerJoinType = outerJoinType;
  	}
focal_method.class_method_signature: OuterJoinOperatorBase.setOuterJoinType(OuterJoinType outerJoinType)
focal_method.full_signature: public void setOuterJoinType(OuterJoinType outerJoinType)
focal_method.identifier: setOuterJoinType
focal_method.modifiers: public
focal_method.parameters: (OuterJoinType outerJoinType)
focal_method.return: void
focal_method.signature: void setOuterJoinType(OuterJoinType outerJoinType)