test_class.declarator: SUBJECT_ID = "nginx:ditto"
test_class.modifier: private static final
test_class.original_string: private static final String SUBJECT_ID = "nginx:ditto";
test_class.type: String
test_class.var_name: SUBJECT_ID
test_class.declarator: CUSTOM_HEADER_KEY = "customHeaderKey"
test_class.modifier: private static final
test_class.original_string: private static final String CUSTOM_HEADER_KEY = "customHeaderKey";
test_class.type: String
test_class.var_name: CUSTOM_HEADER_KEY
test_class.declarator: ANOTHER_SUBJECT_ID = "custom:subjectId"
test_class.modifier: private static final
test_class.original_string: private static final String ANOTHER_SUBJECT_ID = "custom:subjectId";
test_class.type: String
test_class.var_name: ANOTHER_SUBJECT_ID
test_class.declarator: DITTO_HEADERS = DittoHeaders.newBuilder()
              .authorizationContext(AuthorizationContext.newInstance(DittoAuthorizationContextType.UNSPECIFIED,
                      AuthorizationSubject.newInstance(SUBJECT_ID)))
              .putHeader(CUSTOM_HEADER_KEY, ANOTHER_SUBJECT_ID)
              .build()
test_class.modifier: private static final
test_class.original_string: private static final DittoHeaders DITTO_HEADERS = DittoHeaders.newBuilder()
              .authorizationContext(AuthorizationContext.newInstance(DittoAuthorizationContextType.UNSPECIFIED,
                      AuthorizationSubject.newInstance(SUBJECT_ID)))
              .putHeader(CUSTOM_HEADER_KEY, ANOTHER_SUBJECT_ID)
              .build();
test_class.type: DittoHeaders
test_class.var_name: DITTO_HEADERS
test_class.declarator: underTest
test_class.modifier: private
test_class.original_string: private PlaceholderSubstitution underTest;
test_class.type: PlaceholderSubstitution
test_class.var_name: underTest
test_class.file: services/concierge/enforcement/src/test/java/org/eclipse/ditto/services/concierge/enforcement/placeholders/PlaceholderSubstitutionTest.java
test_class.identifier: PlaceholderSubstitutionTest
test_case.body: @Test
      public void applyWithHandledCommandReturnsTheReplacedCommandInstanceWhenLegacyPlaceholderIsSpecified() {
          final ModifySubject commandWithoutPlaceholders = ModifySubject.of(PolicyId.of("org.eclipse.ditto:my-policy"),
                  Label.of("my-label"), Subject.newInstance("${request.subjectId}", SubjectType.GENERATED),
                  DITTO_HEADERS);
  
          final WithDittoHeaders response = applyBlocking(commandWithoutPlaceholders);
  
          final ModifySubject expectedCommandWithPlaceholders = ModifySubject.of(commandWithoutPlaceholders.getEntityId(),
                  commandWithoutPlaceholders.getLabel(), Subject.newInstance(SUBJECT_ID, SubjectType.GENERATED),
                  DITTO_HEADERS);
          assertThat(response).isEqualTo(expectedCommandWithPlaceholders);
      }
test_case.class_method_signature: PlaceholderSubstitutionTest.applyWithHandledCommandReturnsTheReplacedCommandInstanceWhenLegacyPlaceholderIsSpecified()
test_case.full_signature: @Test public void applyWithHandledCommandReturnsTheReplacedCommandInstanceWhenLegacyPlaceholderIsSpecified()
test_case.identifier: applyWithHandledCommandReturnsTheReplacedCommandInstanceWhenLegacyPlaceholderIsSpecified
test_case.invocations: of of of newInstance applyBlocking of getEntityId getLabel newInstance isEqualTo assertThat
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void applyWithHandledCommandReturnsTheReplacedCommandInstanceWhenLegacyPlaceholderIsSpecified()
focal_class.declarator: substitutionAlgorithm
focal_class.modifier: private final
focal_class.original_string: private final HeaderBasedPlaceholderSubstitutionAlgorithm substitutionAlgorithm;
focal_class.type: HeaderBasedPlaceholderSubstitutionAlgorithm
focal_class.var_name: substitutionAlgorithm
focal_class.declarator: substitutionStrategyRegistry
focal_class.modifier: private final
focal_class.original_string: private final SubstitutionStrategyRegistry substitutionStrategyRegistry;
focal_class.type: SubstitutionStrategyRegistry
focal_class.var_name: substitutionStrategyRegistry
focal_class.file: services/concierge/enforcement/src/main/java/org/eclipse/ditto/services/concierge/enforcement/placeholders/PlaceholderSubstitution.java
focal_class.identifier: PlaceholderSubstitution
focal_class.interfaces: implements Function<WithDittoHeaders, CompletionStage<WithDittoHeaders>>
focal_class.class_method_signature: PlaceholderSubstitution.PlaceholderSubstitution(final HeaderBasedPlaceholderSubstitutionAlgorithm substitutionAlgorithm,
              final SubstitutionStrategyRegistry substitutionStrategyRegistry)
focal_class.full_signature: private  PlaceholderSubstitution(final HeaderBasedPlaceholderSubstitutionAlgorithm substitutionAlgorithm,
              final SubstitutionStrategyRegistry substitutionStrategyRegistry)
focal_class.identifier: PlaceholderSubstitution
focal_class.modifiers: private
focal_class.parameters: (final HeaderBasedPlaceholderSubstitutionAlgorithm substitutionAlgorithm,
              final SubstitutionStrategyRegistry substitutionStrategyRegistry)
focal_class.signature:  PlaceholderSubstitution(final HeaderBasedPlaceholderSubstitutionAlgorithm substitutionAlgorithm,
              final SubstitutionStrategyRegistry substitutionStrategyRegistry)
focal_class.class_method_signature: PlaceholderSubstitution.newInstance()
focal_class.full_signature: public static PlaceholderSubstitution newInstance()
focal_class.identifier: newInstance
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: PlaceholderSubstitution
focal_class.signature: PlaceholderSubstitution newInstance()
focal_class.class_method_signature: PlaceholderSubstitution.newExtendedInstance(
              final Map<String, Function<DittoHeaders, String>> additionalReplacementDefinitions)
focal_class.full_signature: public static PlaceholderSubstitution newExtendedInstance(
              final Map<String, Function<DittoHeaders, String>> additionalReplacementDefinitions)
focal_class.identifier: newExtendedInstance
focal_class.modifiers: public static
focal_class.parameters: (
              final Map<String, Function<DittoHeaders, String>> additionalReplacementDefinitions)
focal_class.return: PlaceholderSubstitution
focal_class.signature: PlaceholderSubstitution newExtendedInstance(
              final Map<String, Function<DittoHeaders, String>> additionalReplacementDefinitions)
focal_class.class_method_signature: PlaceholderSubstitution.apply(final WithDittoHeaders withDittoHeaders)
focal_class.full_signature: @Override public CompletionStage<WithDittoHeaders> apply(final WithDittoHeaders withDittoHeaders)
focal_class.identifier: apply
focal_class.modifiers: @Override public
focal_class.parameters: (final WithDittoHeaders withDittoHeaders)
focal_class.return: CompletionStage<WithDittoHeaders>
focal_class.signature: CompletionStage<WithDittoHeaders> apply(final WithDittoHeaders withDittoHeaders)
focal_class.class_method_signature: PlaceholderSubstitution.createDefaultReplacementDefinitions()
focal_class.full_signature: private static Map<String, Function<DittoHeaders, String>> createDefaultReplacementDefinitions()
focal_class.identifier: createDefaultReplacementDefinitions
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: Map<String, Function<DittoHeaders, String>>
focal_class.signature: Map<String, Function<DittoHeaders, String>> createDefaultReplacementDefinitions()
focal_class.class_method_signature: PlaceholderSubstitution.createInstance(
              final Map<String, Function<DittoHeaders, String>> replacementDefinitions)
focal_class.full_signature: private static PlaceholderSubstitution createInstance(
              final Map<String, Function<DittoHeaders, String>> replacementDefinitions)
focal_class.identifier: createInstance
focal_class.modifiers: private static
focal_class.parameters: (
              final Map<String, Function<DittoHeaders, String>> replacementDefinitions)
focal_class.return: PlaceholderSubstitution
focal_class.signature: PlaceholderSubstitution createInstance(
              final Map<String, Function<DittoHeaders, String>> replacementDefinitions)
focal_method.body: public static PlaceholderSubstitution newInstance() {
          final Map<String, Function<DittoHeaders, String>> defaultReplacementDefinitions =
                  createDefaultReplacementDefinitions();
  
          return createInstance(defaultReplacementDefinitions);
      }
focal_method.class_method_signature: PlaceholderSubstitution.newInstance()
focal_method.full_signature: public static PlaceholderSubstitution newInstance()
focal_method.identifier: newInstance
focal_method.invocations: createDefaultReplacementDefinitions createInstance
focal_method.modifiers: public static
focal_method.parameters: ()
focal_method.return: PlaceholderSubstitution
focal_method.signature: PlaceholderSubstitution newInstance()