test_class.declarator: databaseType
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private DatabaseType databaseType;
test_class.type: DatabaseType
test_class.var_name: databaseType
test_class.declarator: schemaMetaData
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private SchemaMetaData schemaMetaData;
test_class.type: SchemaMetaData
test_class.var_name: schemaMetaData
test_class.declarator: props
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private ConfigurationProperties props;
test_class.type: ConfigurationProperties
test_class.var_name: props
test_class.declarator: queryResult
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private QueryResult queryResult;
test_class.type: QueryResult
test_class.var_name: queryResult
test_class.declarator: sqlStatementContext
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private SQLStatementContext<?> sqlStatementContext;
test_class.type: SQLStatementContext<?>
test_class.var_name: sqlStatementContext
test_class.file: shardingsphere-infra/shardingsphere-infra-merge/src/test/java/org/apache/shardingsphere/infra/merge/MergeEngineTest.java
test_class.identifier: MergeEngineTest
test_case.body: @Test
      public void assertMergeWithIndependentRule() throws SQLException {
          when(queryResult.getValue(1, String.class)).thenReturn("test");
          MergeEngine mergeEngine = new MergeEngine(databaseType, schemaMetaData, props, Collections.singletonList(new IndependentRuleFixture()));
          MergedResult actual = mergeEngine.merge(Collections.singletonList(queryResult), sqlStatementContext);
          assertThat(actual.getValue(1, String.class), is("test"));
      }
test_case.class_method_signature: MergeEngineTest.assertMergeWithIndependentRule()
test_case.full_signature: @Test public void assertMergeWithIndependentRule()
test_case.identifier: assertMergeWithIndependentRule
test_case.invocations: thenReturn when getValue singletonList merge singletonList assertThat getValue is
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void assertMergeWithIndependentRule()
focal_class.declarator: databaseType
focal_class.modifier: private final
focal_class.original_string: private final DatabaseType databaseType;
focal_class.type: DatabaseType
focal_class.var_name: databaseType
focal_class.declarator: schemaMetaData
focal_class.modifier: private final
focal_class.original_string: private final SchemaMetaData schemaMetaData;
focal_class.type: SchemaMetaData
focal_class.var_name: schemaMetaData
focal_class.declarator: props
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationProperties props;
focal_class.type: ConfigurationProperties
focal_class.var_name: props
focal_class.declarator: engines
focal_class.modifier: @SuppressWarnings("rawtypes")
      private final
focal_class.original_string: @SuppressWarnings("rawtypes")
      private final Map<ShardingSphereRule, ResultProcessEngine> engines;
focal_class.type: Map<ShardingSphereRule, ResultProcessEngine>
focal_class.var_name: engines
focal_class.file: shardingsphere-infra/shardingsphere-infra-merge/src/main/java/org/apache/shardingsphere/infra/merge/MergeEngine.java
focal_class.identifier: MergeEngine
focal_class.class_method_signature: MergeEngine.MergeEngine(final DatabaseType databaseType, final SchemaMetaData schemaMetaData, final ConfigurationProperties props, final Collection<ShardingSphereRule> rules)
focal_class.full_signature: public  MergeEngine(final DatabaseType databaseType, final SchemaMetaData schemaMetaData, final ConfigurationProperties props, final Collection<ShardingSphereRule> rules)
focal_class.identifier: MergeEngine
focal_class.modifiers: public
focal_class.parameters: (final DatabaseType databaseType, final SchemaMetaData schemaMetaData, final ConfigurationProperties props, final Collection<ShardingSphereRule> rules)
focal_class.signature:  MergeEngine(final DatabaseType databaseType, final SchemaMetaData schemaMetaData, final ConfigurationProperties props, final Collection<ShardingSphereRule> rules)
focal_class.class_method_signature: MergeEngine.merge(final List<QueryResult> queryResults, final SQLStatementContext<?> sqlStatementContext)
focal_class.full_signature: public MergedResult merge(final List<QueryResult> queryResults, final SQLStatementContext<?> sqlStatementContext)
focal_class.identifier: merge
focal_class.modifiers: public
focal_class.parameters: (final List<QueryResult> queryResults, final SQLStatementContext<?> sqlStatementContext)
focal_class.return: MergedResult
focal_class.signature: MergedResult merge(final List<QueryResult> queryResults, final SQLStatementContext<?> sqlStatementContext)
focal_class.class_method_signature: MergeEngine.executeMerge(final List<QueryResult> queryResults, final SQLStatementContext<?> sqlStatementContext)
focal_class.full_signature: @SuppressWarnings({"unchecked", "rawtypes"}) private Optional<MergedResult> executeMerge(final List<QueryResult> queryResults, final SQLStatementContext<?> sqlStatementContext)
focal_class.identifier: executeMerge
focal_class.modifiers: @SuppressWarnings({"unchecked", "rawtypes"}) private
focal_class.parameters: (final List<QueryResult> queryResults, final SQLStatementContext<?> sqlStatementContext)
focal_class.return: Optional<MergedResult>
focal_class.signature: Optional<MergedResult> executeMerge(final List<QueryResult> queryResults, final SQLStatementContext<?> sqlStatementContext)
focal_class.class_method_signature: MergeEngine.decorate(final MergedResult mergedResult, final SQLStatementContext<?> sqlStatementContext)
focal_class.full_signature: @SuppressWarnings({"unchecked", "rawtypes"}) private MergedResult decorate(final MergedResult mergedResult, final SQLStatementContext<?> sqlStatementContext)
focal_class.identifier: decorate
focal_class.modifiers: @SuppressWarnings({"unchecked", "rawtypes"}) private
focal_class.parameters: (final MergedResult mergedResult, final SQLStatementContext<?> sqlStatementContext)
focal_class.return: MergedResult
focal_class.signature: MergedResult decorate(final MergedResult mergedResult, final SQLStatementContext<?> sqlStatementContext)
focal_class.class_method_signature: MergeEngine.decorate(final QueryResult queryResult, final SQLStatementContext<?> sqlStatementContext)
focal_class.full_signature: @SuppressWarnings({"unchecked", "rawtypes"}) private Optional<MergedResult> decorate(final QueryResult queryResult, final SQLStatementContext<?> sqlStatementContext)
focal_class.identifier: decorate
focal_class.modifiers: @SuppressWarnings({"unchecked", "rawtypes"}) private
focal_class.parameters: (final QueryResult queryResult, final SQLStatementContext<?> sqlStatementContext)
focal_class.return: Optional<MergedResult>
focal_class.signature: Optional<MergedResult> decorate(final QueryResult queryResult, final SQLStatementContext<?> sqlStatementContext)
focal_method.body: public MergedResult merge(final List<QueryResult> queryResults, final SQLStatementContext<?> sqlStatementContext) throws SQLException {
          Optional<MergedResult> mergedResult = executeMerge(queryResults, sqlStatementContext);
          Optional<MergedResult> result = mergedResult.isPresent() ? Optional.of(decorate(mergedResult.get(), sqlStatementContext)) : decorate(queryResults.get(0), sqlStatementContext);
          return result.orElseGet(() -> new TransparentMergedResult(queryResults.get(0)));
      }
focal_method.class_method_signature: MergeEngine.merge(final List<QueryResult> queryResults, final SQLStatementContext<?> sqlStatementContext)
focal_method.full_signature: public MergedResult merge(final List<QueryResult> queryResults, final SQLStatementContext<?> sqlStatementContext)
focal_method.identifier: merge
focal_method.invocations: executeMerge isPresent of decorate get decorate get orElseGet get
focal_method.modifiers: public
focal_method.parameters: (final List<QueryResult> queryResults, final SQLStatementContext<?> sqlStatementContext)
focal_method.return: MergedResult
focal_method.signature: MergedResult merge(final List<QueryResult> queryResults, final SQLStatementContext<?> sqlStatementContext)