test_class.file: flink-streaming-java/src/test/java/org/apache/flink/streaming/api/graph/StreamGraphGeneratorTest.java
test_class.identifier: StreamGraphGeneratorTest
test_case.body: @Test
  	public void testOutputTypeConfigurationWithOneInputTransformation() throws Exception {
  		StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
  
  		DataStream<Integer> source = env.fromElements(1, 10);
  
  		OutputTypeConfigurableOperationWithOneInput outputTypeConfigurableOperation = new OutputTypeConfigurableOperationWithOneInput();
  
  		DataStream<Integer> result = source.transform(
  			"Single input and output type configurable operation",
  			BasicTypeInfo.INT_TYPE_INFO,
  			outputTypeConfigurableOperation);
  
  		result.addSink(new NoOpSink<Integer>());
  
  		StreamGraph graph = env.getStreamGraph();
  
  		assertEquals(BasicTypeInfo.INT_TYPE_INFO, outputTypeConfigurableOperation.getTypeInformation());
  	}
test_case.class_method_signature: StreamGraphGeneratorTest.testOutputTypeConfigurationWithOneInputTransformation()
test_case.full_signature: @Test public void testOutputTypeConfigurationWithOneInputTransformation()
test_case.identifier: testOutputTypeConfigurationWithOneInputTransformation
test_case.invocations: getExecutionEnvironment fromElements transform addSink getStreamGraph assertEquals getTypeInformation
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testOutputTypeConfigurationWithOneInputTransformation()
focal_class.declarator: LOG = LoggerFactory.getLogger(StreamGraphGenerator.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOG = LoggerFactory.getLogger(StreamGraphGenerator.class);
focal_class.type: Logger
focal_class.var_name: LOG
focal_class.declarator: streamGraph
focal_class.modifier: private
focal_class.original_string: private StreamGraph streamGraph;
focal_class.type: StreamGraph
focal_class.var_name: streamGraph
focal_class.declarator: env
focal_class.modifier: private final
focal_class.original_string: private final StreamExecutionEnvironment env;
focal_class.type: StreamExecutionEnvironment
focal_class.var_name: env
focal_class.declarator: iterationIdCounter = 0
focal_class.modifier: protected static
focal_class.original_string: protected static Integer iterationIdCounter = 0;
focal_class.type: Integer
focal_class.var_name: iterationIdCounter
focal_class.declarator: alreadyTransformed
focal_class.modifier: private
focal_class.original_string: private Map<StreamTransformation<?>, Collection<Integer>> alreadyTransformed;
focal_class.type: Map<StreamTransformation<?>, Collection<Integer>>
focal_class.var_name: alreadyTransformed
focal_class.file: flink-streaming-java/src/main/java/org/apache/flink/streaming/api/graph/StreamGraphGenerator.java
focal_class.identifier: StreamGraphGenerator
focal_class.class_method_signature: StreamGraphGenerator.getNewIterationNodeId()
focal_class.full_signature: public static int getNewIterationNodeId()
focal_class.identifier: getNewIterationNodeId
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getNewIterationNodeId()
focal_class.class_method_signature: StreamGraphGenerator.StreamGraphGenerator(StreamExecutionEnvironment env)
focal_class.full_signature: private  StreamGraphGenerator(StreamExecutionEnvironment env)
focal_class.identifier: StreamGraphGenerator
focal_class.modifiers: private
focal_class.parameters: (StreamExecutionEnvironment env)
focal_class.signature:  StreamGraphGenerator(StreamExecutionEnvironment env)
focal_class.class_method_signature: StreamGraphGenerator.generate(StreamExecutionEnvironment env, List<StreamTransformation<?>> transformations)
focal_class.full_signature: public static StreamGraph generate(StreamExecutionEnvironment env, List<StreamTransformation<?>> transformations)
focal_class.identifier: generate
focal_class.modifiers: public static
focal_class.parameters: (StreamExecutionEnvironment env, List<StreamTransformation<?>> transformations)
focal_class.return: StreamGraph
focal_class.signature: StreamGraph generate(StreamExecutionEnvironment env, List<StreamTransformation<?>> transformations)
focal_class.class_method_signature: StreamGraphGenerator.generateInternal(List<StreamTransformation<?>> transformations)
focal_class.full_signature: private StreamGraph generateInternal(List<StreamTransformation<?>> transformations)
focal_class.identifier: generateInternal
focal_class.modifiers: private
focal_class.parameters: (List<StreamTransformation<?>> transformations)
focal_class.return: StreamGraph
focal_class.signature: StreamGraph generateInternal(List<StreamTransformation<?>> transformations)
focal_class.class_method_signature: StreamGraphGenerator.transform(StreamTransformation<?> transform)
focal_class.full_signature: private Collection<Integer> transform(StreamTransformation<?> transform)
focal_class.identifier: transform
focal_class.modifiers: private
focal_class.parameters: (StreamTransformation<?> transform)
focal_class.return: Collection<Integer>
focal_class.signature: Collection<Integer> transform(StreamTransformation<?> transform)
focal_class.class_method_signature: StreamGraphGenerator.transformUnion(UnionTransformation<T> union)
focal_class.full_signature: private Collection<Integer> transformUnion(UnionTransformation<T> union)
focal_class.identifier: transformUnion
focal_class.modifiers: private
focal_class.parameters: (UnionTransformation<T> union)
focal_class.return: Collection<Integer>
focal_class.signature: Collection<Integer> transformUnion(UnionTransformation<T> union)
focal_class.class_method_signature: StreamGraphGenerator.transformPartition(PartitionTransformation<T> partition)
focal_class.full_signature: private Collection<Integer> transformPartition(PartitionTransformation<T> partition)
focal_class.identifier: transformPartition
focal_class.modifiers: private
focal_class.parameters: (PartitionTransformation<T> partition)
focal_class.return: Collection<Integer>
focal_class.signature: Collection<Integer> transformPartition(PartitionTransformation<T> partition)
focal_class.class_method_signature: StreamGraphGenerator.transformSplit(SplitTransformation<T> split)
focal_class.full_signature: private Collection<Integer> transformSplit(SplitTransformation<T> split)
focal_class.identifier: transformSplit
focal_class.modifiers: private
focal_class.parameters: (SplitTransformation<T> split)
focal_class.return: Collection<Integer>
focal_class.signature: Collection<Integer> transformSplit(SplitTransformation<T> split)
focal_class.class_method_signature: StreamGraphGenerator.transformSelect(SelectTransformation<T> select)
focal_class.full_signature: private Collection<Integer> transformSelect(SelectTransformation<T> select)
focal_class.identifier: transformSelect
focal_class.modifiers: private
focal_class.parameters: (SelectTransformation<T> select)
focal_class.return: Collection<Integer>
focal_class.signature: Collection<Integer> transformSelect(SelectTransformation<T> select)
focal_class.class_method_signature: StreamGraphGenerator.transformFeedback(FeedbackTransformation<T> iterate)
focal_class.full_signature: private Collection<Integer> transformFeedback(FeedbackTransformation<T> iterate)
focal_class.identifier: transformFeedback
focal_class.modifiers: private
focal_class.parameters: (FeedbackTransformation<T> iterate)
focal_class.return: Collection<Integer>
focal_class.signature: Collection<Integer> transformFeedback(FeedbackTransformation<T> iterate)
focal_class.class_method_signature: StreamGraphGenerator.transformCoFeedback(CoFeedbackTransformation<F> coIterate)
focal_class.full_signature: private Collection<Integer> transformCoFeedback(CoFeedbackTransformation<F> coIterate)
focal_class.identifier: transformCoFeedback
focal_class.modifiers: private
focal_class.parameters: (CoFeedbackTransformation<F> coIterate)
focal_class.return: Collection<Integer>
focal_class.signature: Collection<Integer> transformCoFeedback(CoFeedbackTransformation<F> coIterate)
focal_class.class_method_signature: StreamGraphGenerator.transformSource(SourceTransformation<T> source)
focal_class.full_signature: private Collection<Integer> transformSource(SourceTransformation<T> source)
focal_class.identifier: transformSource
focal_class.modifiers: private
focal_class.parameters: (SourceTransformation<T> source)
focal_class.return: Collection<Integer>
focal_class.signature: Collection<Integer> transformSource(SourceTransformation<T> source)
focal_class.class_method_signature: StreamGraphGenerator.transformSink(SinkTransformation<T> sink)
focal_class.full_signature: private Collection<Integer> transformSink(SinkTransformation<T> sink)
focal_class.identifier: transformSink
focal_class.modifiers: private
focal_class.parameters: (SinkTransformation<T> sink)
focal_class.return: Collection<Integer>
focal_class.signature: Collection<Integer> transformSink(SinkTransformation<T> sink)
focal_class.class_method_signature: StreamGraphGenerator.transformOnInputTransform(OneInputTransformation<IN, OUT> transform)
focal_class.full_signature: private Collection<Integer> transformOnInputTransform(OneInputTransformation<IN, OUT> transform)
focal_class.identifier: transformOnInputTransform
focal_class.modifiers: private
focal_class.parameters: (OneInputTransformation<IN, OUT> transform)
focal_class.return: Collection<Integer>
focal_class.signature: Collection<Integer> transformOnInputTransform(OneInputTransformation<IN, OUT> transform)
focal_class.class_method_signature: StreamGraphGenerator.transformTwoInputTransform(TwoInputTransformation<IN1, IN2, OUT> transform)
focal_class.full_signature: private Collection<Integer> transformTwoInputTransform(TwoInputTransformation<IN1, IN2, OUT> transform)
focal_class.identifier: transformTwoInputTransform
focal_class.modifiers: private
focal_class.parameters: (TwoInputTransformation<IN1, IN2, OUT> transform)
focal_class.return: Collection<Integer>
focal_class.signature: Collection<Integer> transformTwoInputTransform(TwoInputTransformation<IN1, IN2, OUT> transform)
focal_class.class_method_signature: StreamGraphGenerator.determineSlotSharingGroup(String specifiedGroup, Collection<Integer> inputIds)
focal_class.full_signature: private String determineSlotSharingGroup(String specifiedGroup, Collection<Integer> inputIds)
focal_class.identifier: determineSlotSharingGroup
focal_class.modifiers: private
focal_class.parameters: (String specifiedGroup, Collection<Integer> inputIds)
focal_class.return: String
focal_class.signature: String determineSlotSharingGroup(String specifiedGroup, Collection<Integer> inputIds)
focal_method.body: private Collection<Integer> transform(StreamTransformation<?> transform) {
  
  		if (alreadyTransformed.containsKey(transform)) {
  			return alreadyTransformed.get(transform);
  		}
  
  		LOG.debug("Transforming " + transform);
  
  		// call at least once to trigger exceptions about MissingTypeInfo
  		transform.getOutputType();
  
  		Collection<Integer> transformedIds;
  		if (transform instanceof OneInputTransformation<?, ?>) {
  			transformedIds = transformOnInputTransform((OneInputTransformation<?, ?>) transform);
  		} else if (transform instanceof TwoInputTransformation<?, ?, ?>) {
  			transformedIds = transformTwoInputTransform((TwoInputTransformation<?, ?, ?>) transform);
  		} else if (transform instanceof SourceTransformation<?>) {
  			transformedIds = transformSource((SourceTransformation<?>) transform);
  		} else if (transform instanceof SinkTransformation<?>) {
  			transformedIds = transformSink((SinkTransformation<?>) transform);
  		} else if (transform instanceof UnionTransformation<?>) {
  			transformedIds = transformUnion((UnionTransformation<?>) transform);
  		} else if (transform instanceof SplitTransformation<?>) {
  			transformedIds = transformSplit((SplitTransformation<?>) transform);
  		} else if (transform instanceof SelectTransformation<?>) {
  			transformedIds = transformSelect((SelectTransformation<?>) transform);
  		} else if (transform instanceof FeedbackTransformation<?>) {
  			transformedIds = transformFeedback((FeedbackTransformation<?>) transform);
  		} else if (transform instanceof CoFeedbackTransformation<?>) {
  			transformedIds = transformCoFeedback((CoFeedbackTransformation<?>) transform);
  		} else if (transform instanceof PartitionTransformation<?>) {
  			transformedIds = transformPartition((PartitionTransformation<?>) transform);
  		} else {
  			throw new IllegalStateException("Unknown transformation: " + transform);
  		}
  
  		// need this check because the iterate transformation adds itself before
  		// transforming the feedback edges
  		if (!alreadyTransformed.containsKey(transform)) {
  			alreadyTransformed.put(transform, transformedIds);
  		}
  
  		if (transform.getBufferTimeout() > 0) {
  			streamGraph.setBufferTimeout(transform.getId(), transform.getBufferTimeout());
  		}
  		if (transform.getUid() != null) {
  			streamGraph.setTransformationId(transform.getId(), transform.getUid());
  		}
  
  		return transformedIds;
  	}
focal_method.class_method_signature: StreamGraphGenerator.transform(StreamTransformation<?> transform)
focal_method.full_signature: private Collection<Integer> transform(StreamTransformation<?> transform)
focal_method.identifier: transform
focal_method.invocations: containsKey get debug getOutputType transformOnInputTransform transformTwoInputTransform transformSource transformSink transformUnion transformSplit transformSelect transformFeedback transformCoFeedback transformPartition containsKey put getBufferTimeout setBufferTimeout getId getBufferTimeout getUid setTransformationId getId getUid
focal_method.modifiers: private
focal_method.parameters: (StreamTransformation<?> transform)
focal_method.return: Collection<Integer>
focal_method.signature: Collection<Integer> transform(StreamTransformation<?> transform)