test_class.file: shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/config/algorithm/ShardingSphereAlgorithmFactoryTest.java
test_class.identifier: ShardingSphereAlgorithmFactoryTest
test_case.body: @Test
      public void assertCreateAlgorithmWithoutInit() {
          Properties props = new Properties();
          props.setProperty("key", "value");
          ShardingSphereAlgorithm actual = ShardingSphereAlgorithmFactory.createAlgorithm(new ShardingSphereAlgorithmConfiguration("WITHOUT_INIT", props), ShardingSphereAlgorithm.class);
          assertThat(actual, instanceOf(WithoutInitAlgorithm.class));
          assertThat(actual.getProps().getProperty("key"), is("value"));
      }
test_case.class_method_signature: ShardingSphereAlgorithmFactoryTest.assertCreateAlgorithmWithoutInit()
test_case.full_signature: @Test public void assertCreateAlgorithmWithoutInit()
test_case.identifier: assertCreateAlgorithmWithoutInit
test_case.invocations: setProperty createAlgorithm assertThat instanceOf assertThat getProperty getProps is
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void assertCreateAlgorithmWithoutInit()
focal_class.file: shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/config/algorithm/ShardingSphereAlgorithmFactory.java
focal_class.identifier: ShardingSphereAlgorithmFactory
focal_class.class_method_signature: ShardingSphereAlgorithmFactory.createAlgorithm(final TypedSPIConfiguration typedSPIConfig, final Class<? extends ShardingSphereAlgorithm> algorithmClass)
focal_class.full_signature: @SuppressWarnings("unchecked") public static T createAlgorithm(final TypedSPIConfiguration typedSPIConfig, final Class<? extends ShardingSphereAlgorithm> algorithmClass)
focal_class.identifier: createAlgorithm
focal_class.modifiers: @SuppressWarnings("unchecked") public static
focal_class.parameters: (final TypedSPIConfiguration typedSPIConfig, final Class<? extends ShardingSphereAlgorithm> algorithmClass)
focal_class.return: T
focal_class.signature: T createAlgorithm(final TypedSPIConfiguration typedSPIConfig, final Class<? extends ShardingSphereAlgorithm> algorithmClass)
focal_method.body: @SuppressWarnings("unchecked")
      public static <T extends ShardingSphereAlgorithm> T createAlgorithm(final TypedSPIConfiguration typedSPIConfig, final Class<? extends ShardingSphereAlgorithm> algorithmClass) {
          T result = (T) TypedSPIRegistry.getRegisteredService(algorithmClass, typedSPIConfig.getType(), typedSPIConfig.getProps());
          if (result instanceof ShardingSphereAlgorithmPostProcessor) {
              ((ShardingSphereAlgorithmPostProcessor) result).init();
          }
          return result;
      }
focal_method.class_method_signature: ShardingSphereAlgorithmFactory.createAlgorithm(final TypedSPIConfiguration typedSPIConfig, final Class<? extends ShardingSphereAlgorithm> algorithmClass)
focal_method.full_signature: @SuppressWarnings("unchecked") public static T createAlgorithm(final TypedSPIConfiguration typedSPIConfig, final Class<? extends ShardingSphereAlgorithm> algorithmClass)
focal_method.identifier: createAlgorithm
focal_method.invocations: getRegisteredService getType getProps init
focal_method.modifiers: @SuppressWarnings("unchecked") public static
focal_method.parameters: (final TypedSPIConfiguration typedSPIConfig, final Class<? extends ShardingSphereAlgorithm> algorithmClass)
focal_method.return: T
focal_method.signature: T createAlgorithm(final TypedSPIConfiguration typedSPIConfig, final Class<? extends ShardingSphereAlgorithm> algorithmClass)