test_class.file: shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/test/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngineTest.java
test_class.identifier: ShardingResultMergerEngineTest
test_case.body: @Test
      public void assertNewInstanceWithOtherStatement() {
          InsertStatement insertStatement = new MySQLInsertStatement();
          InsertColumnsSegment insertColumnsSegment = new InsertColumnsSegment(0, 0, Collections.singletonList(new ColumnSegment(0, 0, new IdentifierValue("col"))));
          insertStatement.setTable(new SimpleTableSegment(0, 0, new IdentifierValue("tbl")));
          insertStatement.setInsertColumns(insertColumnsSegment);
          InsertStatementContext sqlStatementContext = new InsertStatementContext(mock(SchemaMetaData.class), Collections.emptyList(), insertStatement);
          ConfigurationProperties props = new ConfigurationProperties(new Properties());
          assertThat(new ShardingResultMergerEngine().newInstance(DatabaseTypes.getActualDatabaseType("MySQL"), null, props, sqlStatementContext), instanceOf(TransparentResultMerger.class));
      }
test_case.class_method_signature: ShardingResultMergerEngineTest.assertNewInstanceWithOtherStatement()
test_case.full_signature: @Test public void assertNewInstanceWithOtherStatement()
test_case.identifier: assertNewInstanceWithOtherStatement
test_case.invocations: singletonList setTable setInsertColumns mock emptyList assertThat newInstance getActualDatabaseType instanceOf
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void assertNewInstanceWithOtherStatement()
focal_class.file: shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-merge/src/main/java/org/apache/shardingsphere/sharding/merge/ShardingResultMergerEngine.java
focal_class.identifier: ShardingResultMergerEngine
focal_class.interfaces: implements ResultMergerEngine<ShardingRule>
focal_class.class_method_signature: ShardingResultMergerEngine.newInstance(final DatabaseType databaseType, final ShardingRule shardingRule, final ConfigurationProperties props, final SQLStatementContext sqlStatementContext)
focal_class.full_signature: @Override public ResultMerger newInstance(final DatabaseType databaseType, final ShardingRule shardingRule, final ConfigurationProperties props, final SQLStatementContext sqlStatementContext)
focal_class.identifier: newInstance
focal_class.modifiers: @Override public
focal_class.parameters: (final DatabaseType databaseType, final ShardingRule shardingRule, final ConfigurationProperties props, final SQLStatementContext sqlStatementContext)
focal_class.return: ResultMerger
focal_class.signature: ResultMerger newInstance(final DatabaseType databaseType, final ShardingRule shardingRule, final ConfigurationProperties props, final SQLStatementContext sqlStatementContext)
focal_class.class_method_signature: ShardingResultMergerEngine.getOrder()
focal_class.full_signature: @Override public int getOrder()
focal_class.identifier: getOrder
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getOrder()
focal_class.class_method_signature: ShardingResultMergerEngine.getTypeClass()
focal_class.full_signature: @Override public Class<ShardingRule> getTypeClass()
focal_class.identifier: getTypeClass
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Class<ShardingRule>
focal_class.signature: Class<ShardingRule> getTypeClass()
focal_method.body: @Override
      public ResultMerger newInstance(final DatabaseType databaseType, final ShardingRule shardingRule, final ConfigurationProperties props, final SQLStatementContext sqlStatementContext) {
          if (sqlStatementContext instanceof SelectStatementContext) {
              return new ShardingDQLResultMerger(databaseType);
          } 
          if (sqlStatementContext.getSqlStatement() instanceof DALStatement) {
              return new ShardingDALResultMerger(shardingRule);
          }
          return new TransparentResultMerger();
      }
focal_method.class_method_signature: ShardingResultMergerEngine.newInstance(final DatabaseType databaseType, final ShardingRule shardingRule, final ConfigurationProperties props, final SQLStatementContext sqlStatementContext)
focal_method.full_signature: @Override public ResultMerger newInstance(final DatabaseType databaseType, final ShardingRule shardingRule, final ConfigurationProperties props, final SQLStatementContext sqlStatementContext)
focal_method.identifier: newInstance
focal_method.invocations: getSqlStatement
focal_method.modifiers: @Override public
focal_method.parameters: (final DatabaseType databaseType, final ShardingRule shardingRule, final ConfigurationProperties props, final SQLStatementContext sqlStatementContext)
focal_method.return: ResultMerger
focal_method.signature: ResultMerger newInstance(final DatabaseType databaseType, final ShardingRule shardingRule, final ConfigurationProperties props, final SQLStatementContext sqlStatementContext)