test_class.declarator: testName = new TestName()
test_class.modifier: @Rule
      public final
test_class.original_string: @Rule
      public final TestName testName = new TestName();
test_class.type: TestName
test_class.var_name: testName
test_class.declarator: system
test_class.modifier: private
test_class.original_string: private ActorSystem system;
test_class.type: ActorSystem
test_class.var_name: system
test_class.declarator: mockEntitiesActorInstance
test_class.modifier: private
test_class.original_string: private MockEntitiesActor mockEntitiesActorInstance;
test_class.type: MockEntitiesActor
test_class.var_name: mockEntitiesActorInstance
test_class.declarator: mockEntitiesActor
test_class.modifier: private
test_class.original_string: private ActorRef mockEntitiesActor;
test_class.type: ActorRef
test_class.var_name: mockEntitiesActor
test_class.file: services/concierge/enforcement/src/test/java/org/eclipse/ditto/services/concierge/enforcement/ThingCommandEnforcementTest.java
test_class.identifier: ThingCommandEnforcementTest
test_case.body: @Test
      public void transformModifyThingToCreateThing() {
          final Thing thingInPayload = newThing().setId(THING_ID).build();
  
          new TestKit(system) {{
              final ActorRef underTest = TestSetup.newEnforcerActor(system, getRef(), getRef());
              final ModifyThing modifyThing = ModifyThing.of(THING_ID, thingInPayload, null, headers(V_1));
              underTest.tell(modifyThing, getRef());
  
              fishForMsgClass(this, SudoRetrieveThing.class);
              reply(ThingNotAccessibleException.newBuilder(THING_ID).build());
  
              fishForMsgClass(this, CreateThing.class);
          }};
      }
test_case.class_method_signature: ThingCommandEnforcementTest.transformModifyThingToCreateThing()
test_case.full_signature: @Test public void transformModifyThingToCreateThing()
test_case.identifier: transformModifyThingToCreateThing
test_case.invocations: build setId newThing newEnforcerActor getRef getRef of headers tell getRef fishForMsgClass reply build newBuilder fishForMsgClass
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void transformModifyThingToCreateThing()
focal_class.declarator: LOGGER =
              DittoLoggerFactory.getThreadSafeLogger(ThingCommandEnforcement.class)
focal_class.modifier: private static final
focal_class.original_string: private static final ThreadSafeDittoLogger LOGGER =
              DittoLoggerFactory.getThreadSafeLogger(ThingCommandEnforcement.class);
focal_class.type: ThreadSafeDittoLogger
focal_class.var_name: LOGGER
focal_class.declarator: DEFAULT_POLICY_ENTRY_LABEL = "DEFAULT"
focal_class.modifier: private static final
focal_class.original_string: private static final String DEFAULT_POLICY_ENTRY_LABEL = "DEFAULT";
focal_class.type: String
focal_class.var_name: DEFAULT_POLICY_ENTRY_LABEL
focal_class.declarator: THING_QUERY_COMMAND_RESPONSE_ALLOWLIST =
              JsonFactory.newFieldSelector(Thing.JsonFields.ID)
focal_class.modifier: private static final
focal_class.original_string: private static final JsonFieldSelector THING_QUERY_COMMAND_RESPONSE_ALLOWLIST =
              JsonFactory.newFieldSelector(Thing.JsonFields.ID);
focal_class.type: JsonFieldSelector
focal_class.var_name: THING_QUERY_COMMAND_RESPONSE_ALLOWLIST
focal_class.declarator: subjectIssuersForPolicyMigration
focal_class.modifier: private final
focal_class.original_string: private final List<SubjectIssuer> subjectIssuersForPolicyMigration;
focal_class.type: List<SubjectIssuer>
focal_class.var_name: subjectIssuersForPolicyMigration
focal_class.declarator: thingsShardRegion
focal_class.modifier: private final
focal_class.original_string: private final ActorRef thingsShardRegion;
focal_class.type: ActorRef
focal_class.var_name: thingsShardRegion
focal_class.declarator: policiesShardRegion
focal_class.modifier: private final
focal_class.original_string: private final ActorRef policiesShardRegion;
focal_class.type: ActorRef
focal_class.var_name: policiesShardRegion
focal_class.declarator: thingEnforcerRetriever
focal_class.modifier: private final
focal_class.original_string: private final EnforcerRetriever thingEnforcerRetriever;
focal_class.type: EnforcerRetriever
focal_class.var_name: thingEnforcerRetriever
focal_class.declarator: policyEnforcerRetriever
focal_class.modifier: private final
focal_class.original_string: private final EnforcerRetriever policyEnforcerRetriever;
focal_class.type: EnforcerRetriever
focal_class.var_name: policyEnforcerRetriever
focal_class.declarator: thingIdCache
focal_class.modifier: private final
focal_class.original_string: private final Cache<EntityIdWithResourceType, Entry<EntityIdWithResourceType>> thingIdCache;
focal_class.type: Cache<EntityIdWithResourceType, Entry<EntityIdWithResourceType>>
focal_class.var_name: thingIdCache
focal_class.declarator: policyEnforcerCache
focal_class.modifier: private final
focal_class.original_string: private final Cache<EntityIdWithResourceType, Entry<Enforcer>> policyEnforcerCache;
focal_class.type: Cache<EntityIdWithResourceType, Entry<Enforcer>>
focal_class.var_name: policyEnforcerCache
focal_class.declarator: preEnforcer
focal_class.modifier: private final
focal_class.original_string: private final PreEnforcer preEnforcer;
focal_class.type: PreEnforcer
focal_class.var_name: preEnforcer
focal_class.declarator: aclEnforcerCache
focal_class.modifier: private final
focal_class.original_string: private final Cache<EntityIdWithResourceType, Entry<Enforcer>> aclEnforcerCache;
focal_class.type: Cache<EntityIdWithResourceType, Entry<Enforcer>>
focal_class.var_name: aclEnforcerCache
focal_class.declarator: policyIdReferencePlaceholderResolver
focal_class.modifier: private final
focal_class.original_string: private final PolicyIdReferencePlaceholderResolver policyIdReferencePlaceholderResolver;
focal_class.type: PolicyIdReferencePlaceholderResolver
focal_class.var_name: policyIdReferencePlaceholderResolver
focal_class.file: services/concierge/enforcement/src/main/java/org/eclipse/ditto/services/concierge/enforcement/ThingCommandEnforcement.java
focal_class.identifier: ThingCommandEnforcement
focal_class.class_method_signature: ThingCommandEnforcement.ThingCommandEnforcement(final Contextual<ThingCommand<?>> data,
              final ActorRef thingsShardRegion,
              final ActorRef policiesShardRegion,
              final Cache<EntityIdWithResourceType, Entry<EntityIdWithResourceType>> thingIdCache,
              final Cache<EntityIdWithResourceType, Entry<Enforcer>> policyEnforcerCache,
              final Cache<EntityIdWithResourceType, Entry<Enforcer>> aclEnforcerCache,
              final PreEnforcer preEnforcer,
              final List<SubjectIssuer> subjectIssuersForPolicyMigration)
focal_class.full_signature: private  ThingCommandEnforcement(final Contextual<ThingCommand<?>> data,
              final ActorRef thingsShardRegion,
              final ActorRef policiesShardRegion,
              final Cache<EntityIdWithResourceType, Entry<EntityIdWithResourceType>> thingIdCache,
              final Cache<EntityIdWithResourceType, Entry<Enforcer>> policyEnforcerCache,
              final Cache<EntityIdWithResourceType, Entry<Enforcer>> aclEnforcerCache,
              final PreEnforcer preEnforcer,
              final List<SubjectIssuer> subjectIssuersForPolicyMigration)
focal_class.identifier: ThingCommandEnforcement
focal_class.modifiers: private
focal_class.parameters: (final Contextual<ThingCommand<?>> data,
              final ActorRef thingsShardRegion,
              final ActorRef policiesShardRegion,
              final Cache<EntityIdWithResourceType, Entry<EntityIdWithResourceType>> thingIdCache,
              final Cache<EntityIdWithResourceType, Entry<Enforcer>> policyEnforcerCache,
              final Cache<EntityIdWithResourceType, Entry<Enforcer>> aclEnforcerCache,
              final PreEnforcer preEnforcer,
              final List<SubjectIssuer> subjectIssuersForPolicyMigration)
focal_class.signature:  ThingCommandEnforcement(final Contextual<ThingCommand<?>> data,
              final ActorRef thingsShardRegion,
              final ActorRef policiesShardRegion,
              final Cache<EntityIdWithResourceType, Entry<EntityIdWithResourceType>> thingIdCache,
              final Cache<EntityIdWithResourceType, Entry<Enforcer>> policyEnforcerCache,
              final Cache<EntityIdWithResourceType, Entry<Enforcer>> aclEnforcerCache,
              final PreEnforcer preEnforcer,
              final List<SubjectIssuer> subjectIssuersForPolicyMigration)
focal_class.class_method_signature: ThingCommandEnforcement.enforce()
focal_class.full_signature: @Override public CompletionStage<Contextual<WithDittoHeaders>> enforce()
focal_class.identifier: enforce
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: CompletionStage<Contextual<WithDittoHeaders>>
focal_class.signature: CompletionStage<Contextual<WithDittoHeaders>> enforce()
focal_class.class_method_signature: ThingCommandEnforcement.doEnforce(
              final Entry<EntityIdWithResourceType> enforcerKeyEntry, final Entry<Enforcer> enforcerEntry)
focal_class.full_signature: private CompletionStage<Contextual<WithDittoHeaders>> doEnforce(
              final Entry<EntityIdWithResourceType> enforcerKeyEntry, final Entry<Enforcer> enforcerEntry)
focal_class.identifier: doEnforce
focal_class.modifiers: private
focal_class.parameters: (
              final Entry<EntityIdWithResourceType> enforcerKeyEntry, final Entry<Enforcer> enforcerEntry)
focal_class.return: CompletionStage<Contextual<WithDittoHeaders>>
focal_class.signature: CompletionStage<Contextual<WithDittoHeaders>> doEnforce(
              final Entry<EntityIdWithResourceType> enforcerKeyEntry, final Entry<Enforcer> enforcerEntry)
focal_class.class_method_signature: ThingCommandEnforcement.enforceThingCommandByNonexistentEnforcer(
              final Entry<EntityIdWithResourceType> enforcerKeyEntry)
focal_class.full_signature: private CompletionStage<Contextual<WithDittoHeaders>> enforceThingCommandByNonexistentEnforcer(
              final Entry<EntityIdWithResourceType> enforcerKeyEntry)
focal_class.identifier: enforceThingCommandByNonexistentEnforcer
focal_class.modifiers: private
focal_class.parameters: (
              final Entry<EntityIdWithResourceType> enforcerKeyEntry)
focal_class.return: CompletionStage<Contextual<WithDittoHeaders>>
focal_class.signature: CompletionStage<Contextual<WithDittoHeaders>> enforceThingCommandByNonexistentEnforcer(
              final Entry<EntityIdWithResourceType> enforcerKeyEntry)
focal_class.class_method_signature: ThingCommandEnforcement.enforceThingCommandByAclEnforcer(final Enforcer enforcer)
focal_class.full_signature: private Contextual<WithDittoHeaders> enforceThingCommandByAclEnforcer(final Enforcer enforcer)
focal_class.identifier: enforceThingCommandByAclEnforcer
focal_class.modifiers: private
focal_class.parameters: (final Enforcer enforcer)
focal_class.return: Contextual<WithDittoHeaders>
focal_class.signature: Contextual<WithDittoHeaders> enforceThingCommandByAclEnforcer(final Enforcer enforcer)
focal_class.class_method_signature: ThingCommandEnforcement.isResponseRequired(final WithDittoHeaders<?> withDittoHeaders)
focal_class.full_signature: private static boolean isResponseRequired(final WithDittoHeaders<?> withDittoHeaders)
focal_class.identifier: isResponseRequired
focal_class.modifiers: private static
focal_class.parameters: (final WithDittoHeaders<?> withDittoHeaders)
focal_class.return: boolean
focal_class.signature: boolean isResponseRequired(final WithDittoHeaders<?> withDittoHeaders)
focal_class.class_method_signature: ThingCommandEnforcement.retrieveThingAclAndMigrateToPolicy(final RetrieveThing retrieveThing,
              final Enforcer enforcer)
focal_class.full_signature: private Contextual<WithDittoHeaders> retrieveThingAclAndMigrateToPolicy(final RetrieveThing retrieveThing,
              final Enforcer enforcer)
focal_class.identifier: retrieveThingAclAndMigrateToPolicy
focal_class.modifiers: private
focal_class.parameters: (final RetrieveThing retrieveThing,
              final Enforcer enforcer)
focal_class.return: Contextual<WithDittoHeaders>
focal_class.signature: Contextual<WithDittoHeaders> retrieveThingAclAndMigrateToPolicy(final RetrieveThing retrieveThing,
              final Enforcer enforcer)
focal_class.class_method_signature: ThingCommandEnforcement.enforceThingCommandByPolicyEnforcer(
              final ThingCommand<?> thingCommand, final PolicyId policyId, final Enforcer enforcer)
focal_class.full_signature: private Contextual<WithDittoHeaders> enforceThingCommandByPolicyEnforcer(
              final ThingCommand<?> thingCommand, final PolicyId policyId, final Enforcer enforcer)
focal_class.identifier: enforceThingCommandByPolicyEnforcer
focal_class.modifiers: private
focal_class.parameters: (
              final ThingCommand<?> thingCommand, final PolicyId policyId, final Enforcer enforcer)
focal_class.return: Contextual<WithDittoHeaders>
focal_class.signature: Contextual<WithDittoHeaders> enforceThingCommandByPolicyEnforcer(
              final ThingCommand<?> thingCommand, final PolicyId policyId, final Enforcer enforcer)
focal_class.class_method_signature: ThingCommandEnforcement.askThingsShardRegionAndBuildJsonView(
              final ThingQueryCommand commandWithReadSubjects, final Enforcer enforcer)
focal_class.full_signature: private CompletionStage<WithDittoHeaders> askThingsShardRegionAndBuildJsonView(
              final ThingQueryCommand commandWithReadSubjects, final Enforcer enforcer)
focal_class.identifier: askThingsShardRegionAndBuildJsonView
focal_class.modifiers: private
focal_class.parameters: (
              final ThingQueryCommand commandWithReadSubjects, final Enforcer enforcer)
focal_class.return: CompletionStage<WithDittoHeaders>
focal_class.signature: CompletionStage<WithDittoHeaders> askThingsShardRegionAndBuildJsonView(
              final ThingQueryCommand commandWithReadSubjects, final Enforcer enforcer)
focal_class.class_method_signature: ThingCommandEnforcement.retrieveThingAndPolicy(final RetrieveThing retrieveThing,
              final PolicyId policyId, final Enforcer enforcer)
focal_class.full_signature: private CompletionStage<WithDittoHeaders> retrieveThingAndPolicy(final RetrieveThing retrieveThing,
              final PolicyId policyId, final Enforcer enforcer)
focal_class.identifier: retrieveThingAndPolicy
focal_class.modifiers: private
focal_class.parameters: (final RetrieveThing retrieveThing,
              final PolicyId policyId, final Enforcer enforcer)
focal_class.return: CompletionStage<WithDittoHeaders>
focal_class.signature: CompletionStage<WithDittoHeaders> retrieveThingAndPolicy(final RetrieveThing retrieveThing,
              final PolicyId policyId, final Enforcer enforcer)
focal_class.class_method_signature: ThingCommandEnforcement.retrieveThingBeforePolicy(final RetrieveThing command)
focal_class.full_signature: private CompletionStage<WithDittoHeaders> retrieveThingBeforePolicy(final RetrieveThing command)
focal_class.identifier: retrieveThingBeforePolicy
focal_class.modifiers: private
focal_class.parameters: (final RetrieveThing command)
focal_class.return: CompletionStage<WithDittoHeaders>
focal_class.signature: CompletionStage<WithDittoHeaders> retrieveThingBeforePolicy(final RetrieveThing command)
focal_class.class_method_signature: ThingCommandEnforcement.reportThingUnavailable()
focal_class.full_signature: private ThingUnavailableException reportThingUnavailable()
focal_class.identifier: reportThingUnavailable
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: ThingUnavailableException
focal_class.signature: ThingUnavailableException reportThingUnavailable()
focal_class.class_method_signature: ThingCommandEnforcement.retrieveInlinedPolicyForThing(
              final RetrieveThing retrieveThing, final RetrievePolicy retrievePolicy)
focal_class.full_signature: private CompletionStage<Optional<RetrievePolicyResponse>> retrieveInlinedPolicyForThing(
              final RetrieveThing retrieveThing, final RetrievePolicy retrievePolicy)
focal_class.identifier: retrieveInlinedPolicyForThing
focal_class.modifiers: private
focal_class.parameters: (
              final RetrieveThing retrieveThing, final RetrievePolicy retrievePolicy)
focal_class.return: CompletionStage<Optional<RetrievePolicyResponse>>
focal_class.signature: CompletionStage<Optional<RetrievePolicyResponse>> retrieveInlinedPolicyForThing(
              final RetrieveThing retrieveThing, final RetrievePolicy retrievePolicy)
focal_class.class_method_signature: ThingCommandEnforcement.getCorrelationIdOrNull(final Object signal, final WithDittoHeaders<?> fallBackSignal)
focal_class.full_signature: @Nullable private static CharSequence getCorrelationIdOrNull(final Object signal, final WithDittoHeaders<?> fallBackSignal)
focal_class.identifier: getCorrelationIdOrNull
focal_class.modifiers: @Nullable private static
focal_class.parameters: (final Object signal, final WithDittoHeaders<?> fallBackSignal)
focal_class.return: CharSequence
focal_class.signature: CharSequence getCorrelationIdOrNull(final Object signal, final WithDittoHeaders<?> fallBackSignal)
focal_class.class_method_signature: ThingCommandEnforcement.isWithDittoHeaders(final Object o)
focal_class.full_signature: private static boolean isWithDittoHeaders(final Object o)
focal_class.identifier: isWithDittoHeaders
focal_class.modifiers: private static
focal_class.parameters: (final Object o)
focal_class.return: boolean
focal_class.signature: boolean isWithDittoHeaders(final Object o)
focal_class.class_method_signature: ThingCommandEnforcement.reportAggregatedThingAndPolicyResponse(final RetrieveThing retrieveThing,
              final RetrieveThingResponse thingResponse,
              final RetrievePolicyResponse policyResponse,
              final Enforcer enforcer)
focal_class.full_signature: private static RetrieveThingResponse reportAggregatedThingAndPolicyResponse(final RetrieveThing retrieveThing,
              final RetrieveThingResponse thingResponse,
              final RetrievePolicyResponse policyResponse,
              final Enforcer enforcer)
focal_class.identifier: reportAggregatedThingAndPolicyResponse
focal_class.modifiers: private static
focal_class.parameters: (final RetrieveThing retrieveThing,
              final RetrieveThingResponse thingResponse,
              final RetrievePolicyResponse policyResponse,
              final Enforcer enforcer)
focal_class.return: RetrieveThingResponse
focal_class.signature: RetrieveThingResponse reportAggregatedThingAndPolicyResponse(final RetrieveThing retrieveThing,
              final RetrieveThingResponse thingResponse,
              final RetrievePolicyResponse policyResponse,
              final Enforcer enforcer)
focal_class.class_method_signature: ThingCommandEnforcement.reportAggregatedThingAndPolicy(final RetrieveThing retrieveThing,
              final RetrieveThingResponse retrieveThingResponse,
              final Policy policy,
              final Enforcer enforcer)
focal_class.full_signature: private static RetrieveThingResponse reportAggregatedThingAndPolicy(final RetrieveThing retrieveThing,
              final RetrieveThingResponse retrieveThingResponse,
              final Policy policy,
              final Enforcer enforcer)
focal_class.identifier: reportAggregatedThingAndPolicy
focal_class.modifiers: private static
focal_class.parameters: (final RetrieveThing retrieveThing,
              final RetrieveThingResponse retrieveThingResponse,
              final Policy policy,
              final Enforcer enforcer)
focal_class.return: RetrieveThingResponse
focal_class.signature: RetrieveThingResponse reportAggregatedThingAndPolicy(final RetrieveThing retrieveThing,
              final RetrieveThingResponse retrieveThingResponse,
              final Policy policy,
              final Enforcer enforcer)
focal_class.class_method_signature: ThingCommandEnforcement.reportTimeoutForThingQuery(final ThingQueryCommand command,
              final AskTimeoutException askTimeoutException)
focal_class.full_signature: private ThingUnavailableException reportTimeoutForThingQuery(final ThingQueryCommand command,
              final AskTimeoutException askTimeoutException)
focal_class.identifier: reportTimeoutForThingQuery
focal_class.modifiers: private
focal_class.parameters: (final ThingQueryCommand command,
              final AskTimeoutException askTimeoutException)
focal_class.return: ThingUnavailableException
focal_class.signature: ThingUnavailableException reportTimeoutForThingQuery(final ThingQueryCommand command,
              final AskTimeoutException askTimeoutException)
focal_class.class_method_signature: ThingCommandEnforcement.reportJsonViewForThingQuery(
              final ThingQueryCommandResponse<?> thingQueryCommandResponse, final Enforcer enforcer)
focal_class.full_signature: private ThingQueryCommandResponse reportJsonViewForThingQuery(
              final ThingQueryCommandResponse<?> thingQueryCommandResponse, final Enforcer enforcer)
focal_class.identifier: reportJsonViewForThingQuery
focal_class.modifiers: private
focal_class.parameters: (
              final ThingQueryCommandResponse<?> thingQueryCommandResponse, final Enforcer enforcer)
focal_class.return: ThingQueryCommandResponse
focal_class.signature: ThingQueryCommandResponse reportJsonViewForThingQuery(
              final ThingQueryCommandResponse<?> thingQueryCommandResponse, final Enforcer enforcer)
focal_class.class_method_signature: ThingCommandEnforcement.enforceCreateThingForNonexistentThingWithPolicyId(
              final CreateThing command, final PolicyId policyId)
focal_class.full_signature: private CompletionStage<Contextual<WithDittoHeaders>> enforceCreateThingForNonexistentThingWithPolicyId(
              final CreateThing command, final PolicyId policyId)
focal_class.identifier: enforceCreateThingForNonexistentThingWithPolicyId
focal_class.modifiers: private
focal_class.parameters: (
              final CreateThing command, final PolicyId policyId)
focal_class.return: CompletionStage<Contextual<WithDittoHeaders>>
focal_class.signature: CompletionStage<Contextual<WithDittoHeaders>> enforceCreateThingForNonexistentThingWithPolicyId(
              final CreateThing command, final PolicyId policyId)
focal_class.class_method_signature: ThingCommandEnforcement.buildJsonViewForThingQueryCommandResponse(
              final ThingQueryCommandResponse<T> response, final Enforcer enforcer)
focal_class.full_signature: private static T buildJsonViewForThingQueryCommandResponse(
              final ThingQueryCommandResponse<T> response, final Enforcer enforcer)
focal_class.identifier: buildJsonViewForThingQueryCommandResponse
focal_class.modifiers: private static
focal_class.parameters: (
              final ThingQueryCommandResponse<T> response, final Enforcer enforcer)
focal_class.return: T
focal_class.signature: T buildJsonViewForThingQueryCommandResponse(
              final ThingQueryCommandResponse<T> response, final Enforcer enforcer)
focal_class.class_method_signature: ThingCommandEnforcement.forwardToThingsShardRegion(final ThingCommand command)
focal_class.full_signature: private Contextual<WithDittoHeaders> forwardToThingsShardRegion(final ThingCommand command)
focal_class.identifier: forwardToThingsShardRegion
focal_class.modifiers: private
focal_class.parameters: (final ThingCommand command)
focal_class.return: Contextual<WithDittoHeaders>
focal_class.signature: Contextual<WithDittoHeaders> forwardToThingsShardRegion(final ThingCommand command)
focal_class.class_method_signature: ThingCommandEnforcement.invalidateThingCaches(final ThingId thingId)
focal_class.full_signature: private void invalidateThingCaches(final ThingId thingId)
focal_class.identifier: invalidateThingCaches
focal_class.modifiers: private
focal_class.parameters: (final ThingId thingId)
focal_class.return: void
focal_class.signature: void invalidateThingCaches(final ThingId thingId)
focal_class.class_method_signature: ThingCommandEnforcement.invalidatePolicyCache(final PolicyId policyId)
focal_class.full_signature: private void invalidatePolicyCache(final PolicyId policyId)
focal_class.identifier: invalidatePolicyCache
focal_class.modifiers: private
focal_class.parameters: (final PolicyId policyId)
focal_class.return: void
focal_class.signature: void invalidatePolicyCache(final PolicyId policyId)
focal_class.class_method_signature: ThingCommandEnforcement.getJsonViewForThingQueryCommandResponse(final JsonObject responseEntity,
              final ThingQueryCommandResponse response, final Enforcer enforcer)
focal_class.full_signature: private static JsonObject getJsonViewForThingQueryCommandResponse(final JsonObject responseEntity,
              final ThingQueryCommandResponse response, final Enforcer enforcer)
focal_class.identifier: getJsonViewForThingQueryCommandResponse
focal_class.modifiers: private static
focal_class.parameters: (final JsonObject responseEntity,
              final ThingQueryCommandResponse response, final Enforcer enforcer)
focal_class.return: JsonObject
focal_class.signature: JsonObject getJsonViewForThingQueryCommandResponse(final JsonObject responseEntity,
              final ThingQueryCommandResponse response, final Enforcer enforcer)
focal_class.class_method_signature: ThingCommandEnforcement.errorForExistingThingWithDeletedPolicy(final ThingCommand thingCommand,
              final ThingId thingId, final CharSequence policyId)
focal_class.full_signature: private static DittoRuntimeException errorForExistingThingWithDeletedPolicy(final ThingCommand thingCommand,
              final ThingId thingId, final CharSequence policyId)
focal_class.identifier: errorForExistingThingWithDeletedPolicy
focal_class.modifiers: private static
focal_class.parameters: (final ThingCommand thingCommand,
              final ThingId thingId, final CharSequence policyId)
focal_class.return: DittoRuntimeException
focal_class.signature: DittoRuntimeException errorForExistingThingWithDeletedPolicy(final ThingCommand thingCommand,
              final ThingId thingId, final CharSequence policyId)
focal_class.class_method_signature: ThingCommandEnforcement.errorForThingCommand(final ThingCommand thingCommand)
focal_class.full_signature: static DittoRuntimeException errorForThingCommand(final ThingCommand thingCommand)
focal_class.identifier: errorForThingCommand
focal_class.modifiers: static
focal_class.parameters: (final ThingCommand thingCommand)
focal_class.return: DittoRuntimeException
focal_class.signature: DittoRuntimeException errorForThingCommand(final ThingCommand thingCommand)
focal_class.class_method_signature: ThingCommandEnforcement.enforceCreateThingBySelf()
focal_class.full_signature: private CompletionStage<CreateThingWithEnforcer> enforceCreateThingBySelf()
focal_class.identifier: enforceCreateThingBySelf
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: CompletionStage<CreateThingWithEnforcer>
focal_class.signature: CompletionStage<CreateThingWithEnforcer> enforceCreateThingBySelf()
focal_class.class_method_signature: ThingCommandEnforcement.replaceInitialPolicyWithCopiedPolicyIfPresent(final CreateThing createThing)
focal_class.full_signature: private CompletionStage<CreateThing> replaceInitialPolicyWithCopiedPolicyIfPresent(final CreateThing createThing)
focal_class.identifier: replaceInitialPolicyWithCopiedPolicyIfPresent
focal_class.modifiers: private
focal_class.parameters: (final CreateThing createThing)
focal_class.return: CompletionStage<CreateThing>
focal_class.signature: CompletionStage<CreateThing> replaceInitialPolicyWithCopiedPolicyIfPresent(final CreateThing createThing)
focal_class.class_method_signature: ThingCommandEnforcement.getInitialPolicyOrCopiedPolicy(final CreateThing createThing)
focal_class.full_signature: private CompletionStage<JsonObject> getInitialPolicyOrCopiedPolicy(final CreateThing createThing)
focal_class.identifier: getInitialPolicyOrCopiedPolicy
focal_class.modifiers: private
focal_class.parameters: (final CreateThing createThing)
focal_class.return: CompletionStage<JsonObject>
focal_class.signature: CompletionStage<JsonObject> getInitialPolicyOrCopiedPolicy(final CreateThing createThing)
focal_class.class_method_signature: ThingCommandEnforcement.retrievePolicyWithEnforcement(final PolicyId policyId)
focal_class.full_signature: private CompletionStage<Policy> retrievePolicyWithEnforcement(final PolicyId policyId)
focal_class.identifier: retrievePolicyWithEnforcement
focal_class.modifiers: private
focal_class.parameters: (final PolicyId policyId)
focal_class.return: CompletionStage<Policy>
focal_class.signature: CompletionStage<Policy> retrievePolicyWithEnforcement(final PolicyId policyId)
focal_class.class_method_signature: ThingCommandEnforcement.enforceCreateThingByAuthorizationContext(final CreateThing createThing)
focal_class.full_signature: private static CreateThingWithEnforcer enforceCreateThingByAuthorizationContext(final CreateThing createThing)
focal_class.identifier: enforceCreateThingByAuthorizationContext
focal_class.modifiers: private static
focal_class.parameters: (final CreateThing createThing)
focal_class.return: CreateThingWithEnforcer
focal_class.signature: CreateThingWithEnforcer enforceCreateThingByAuthorizationContext(final CreateThing createThing)
focal_class.class_method_signature: ThingCommandEnforcement.enforceCreateThingByOwnInlinedPolicyOrThrow(final CreateThing createThing,
              final JsonObject inlinedPolicy)
focal_class.full_signature: private CreateThingWithEnforcer enforceCreateThingByOwnInlinedPolicyOrThrow(final CreateThing createThing,
              final JsonObject inlinedPolicy)
focal_class.identifier: enforceCreateThingByOwnInlinedPolicyOrThrow
focal_class.modifiers: private
focal_class.parameters: (final CreateThing createThing,
              final JsonObject inlinedPolicy)
focal_class.return: CreateThingWithEnforcer
focal_class.signature: CreateThingWithEnforcer enforceCreateThingByOwnInlinedPolicyOrThrow(final CreateThing createThing,
              final JsonObject inlinedPolicy)
focal_class.class_method_signature: ThingCommandEnforcement.getInitialPolicy(final CreateThing createThing, final JsonObject inlinedPolicy)
focal_class.full_signature: @SuppressWarnings("java:S1193") private Policy getInitialPolicy(final CreateThing createThing, final JsonObject inlinedPolicy)
focal_class.identifier: getInitialPolicy
focal_class.modifiers: @SuppressWarnings("java:S1193") private
focal_class.parameters: (final CreateThing createThing, final JsonObject inlinedPolicy)
focal_class.return: Policy
focal_class.signature: Policy getInitialPolicy(final CreateThing createThing, final JsonObject inlinedPolicy)
focal_class.class_method_signature: ThingCommandEnforcement.enforceCreateThingByOwnAclOrThrow(final CreateThing command,
              final AccessControlList acl)
focal_class.full_signature: private static CreateThingWithEnforcer enforceCreateThingByOwnAclOrThrow(final CreateThing command,
              final AccessControlList acl)
focal_class.identifier: enforceCreateThingByOwnAclOrThrow
focal_class.modifiers: private static
focal_class.parameters: (final CreateThing command,
              final AccessControlList acl)
focal_class.return: CreateThingWithEnforcer
focal_class.signature: CreateThingWithEnforcer enforceCreateThingByOwnAclOrThrow(final CreateThing command,
              final AccessControlList acl)
focal_class.class_method_signature: ThingCommandEnforcement.attachEnforcerOrThrow(final CreateThing command, final Enforcer enforcer,
              final BiFunction<Enforcer, ThingCommand<CreateThing>, CreateThing> authorization)
focal_class.full_signature: private static CreateThingWithEnforcer attachEnforcerOrThrow(final CreateThing command, final Enforcer enforcer,
              final BiFunction<Enforcer, ThingCommand<CreateThing>, CreateThing> authorization)
focal_class.identifier: attachEnforcerOrThrow
focal_class.modifiers: private static
focal_class.parameters: (final CreateThing command, final Enforcer enforcer,
              final BiFunction<Enforcer, ThingCommand<CreateThing>, CreateThing> authorization)
focal_class.return: CreateThingWithEnforcer
focal_class.signature: CreateThingWithEnforcer attachEnforcerOrThrow(final CreateThing command, final Enforcer enforcer,
              final BiFunction<Enforcer, ThingCommand<CreateThing>, CreateThing> authorization)
focal_class.class_method_signature: ThingCommandEnforcement.transformModifyThingToCreateThing(final ThingCommand receivedCommand)
focal_class.full_signature: private static ThingCommand transformModifyThingToCreateThing(final ThingCommand receivedCommand)
focal_class.identifier: transformModifyThingToCreateThing
focal_class.modifiers: private static
focal_class.parameters: (final ThingCommand receivedCommand)
focal_class.return: ThingCommand
focal_class.signature: ThingCommand transformModifyThingToCreateThing(final ThingCommand receivedCommand)
focal_class.class_method_signature: ThingCommandEnforcement.authorizeByPolicyOrThrow(final Enforcer policyEnforcer,
              final ThingCommand<T> command)
focal_class.full_signature: static T authorizeByPolicyOrThrow(final Enforcer policyEnforcer,
              final ThingCommand<T> command)
focal_class.identifier: authorizeByPolicyOrThrow
focal_class.modifiers: static
focal_class.parameters: (final Enforcer policyEnforcer,
              final ThingCommand<T> command)
focal_class.return: T
focal_class.signature: T authorizeByPolicyOrThrow(final Enforcer policyEnforcer,
              final ThingCommand<T> command)
focal_class.class_method_signature: ThingCommandEnforcement.authorizeByAclOrThrow(final Enforcer aclEnforcer,
              final ThingCommand<T> command)
focal_class.full_signature: static T authorizeByAclOrThrow(final Enforcer aclEnforcer,
              final ThingCommand<T> command)
focal_class.identifier: authorizeByAclOrThrow
focal_class.modifiers: static
focal_class.parameters: (final Enforcer aclEnforcer,
              final ThingCommand<T> command)
focal_class.return: T
focal_class.signature: T authorizeByAclOrThrow(final Enforcer aclEnforcer,
              final ThingCommand<T> command)
focal_class.class_method_signature: ThingCommandEnforcement.computeAclPermissions(final ThingModifyCommand<?> command)
focal_class.full_signature: private static Permissions computeAclPermissions(final ThingModifyCommand<?> command)
focal_class.identifier: computeAclPermissions
focal_class.modifiers: private static
focal_class.parameters: (final ThingModifyCommand<?> command)
focal_class.return: Permissions
focal_class.signature: Permissions computeAclPermissions(final ThingModifyCommand<?> command)
focal_class.class_method_signature: ThingCommandEnforcement.shouldRetrievePolicyWithThing(final ThingCommand<?> command)
focal_class.full_signature: private static boolean shouldRetrievePolicyWithThing(final ThingCommand<?> command)
focal_class.identifier: shouldRetrievePolicyWithThing
focal_class.modifiers: private static
focal_class.parameters: (final ThingCommand<?> command)
focal_class.return: boolean
focal_class.signature: boolean shouldRetrievePolicyWithThing(final ThingCommand<?> command)
focal_class.class_method_signature: ThingCommandEnforcement.handleInitialCreateThing(
              final CreateThing createThing, final Enforcer enforcer)
focal_class.full_signature: private CompletionStage<Contextual<WithDittoHeaders>> handleInitialCreateThing(
              final CreateThing createThing, final Enforcer enforcer)
focal_class.identifier: handleInitialCreateThing
focal_class.modifiers: private
focal_class.parameters: (
              final CreateThing createThing, final Enforcer enforcer)
focal_class.return: CompletionStage<Contextual<WithDittoHeaders>>
focal_class.signature: CompletionStage<Contextual<WithDittoHeaders>> handleInitialCreateThing(
              final CreateThing createThing, final Enforcer enforcer)
focal_class.class_method_signature: ThingCommandEnforcement.shouldCreatePolicyForCreateThing(final CreateThing createThing)
focal_class.full_signature: private static boolean shouldCreatePolicyForCreateThing(final CreateThing createThing)
focal_class.identifier: shouldCreatePolicyForCreateThing
focal_class.modifiers: private static
focal_class.parameters: (final CreateThing createThing)
focal_class.return: boolean
focal_class.signature: boolean shouldCreatePolicyForCreateThing(final CreateThing createThing)
focal_class.class_method_signature: ThingCommandEnforcement.checkForErrorsInCreateThingWithPolicy(final CreateThing command)
focal_class.full_signature: private static void checkForErrorsInCreateThingWithPolicy(final CreateThing command)
focal_class.identifier: checkForErrorsInCreateThingWithPolicy
focal_class.modifiers: private static
focal_class.parameters: (final CreateThing command)
focal_class.return: void
focal_class.signature: void checkForErrorsInCreateThingWithPolicy(final CreateThing command)
focal_class.class_method_signature: ThingCommandEnforcement.checkAclAbsenceInCreateThing(final CreateThing createThing)
focal_class.full_signature: private static void checkAclAbsenceInCreateThing(final CreateThing createThing)
focal_class.identifier: checkAclAbsenceInCreateThing
focal_class.modifiers: private static
focal_class.parameters: (final CreateThing createThing)
focal_class.return: void
focal_class.signature: void checkAclAbsenceInCreateThing(final CreateThing createThing)
focal_class.class_method_signature: ThingCommandEnforcement.validatePolicyIdForCreateThing(final CreateThing createThing)
focal_class.full_signature: private static void validatePolicyIdForCreateThing(final CreateThing createThing)
focal_class.identifier: validatePolicyIdForCreateThing
focal_class.modifiers: private static
focal_class.parameters: (final CreateThing createThing)
focal_class.return: void
focal_class.signature: void validatePolicyIdForCreateThing(final CreateThing createThing)
focal_class.class_method_signature: ThingCommandEnforcement.createThingWithInitialPolicy(final CreateThing createThing,
              final Enforcer enforcer)
focal_class.full_signature: private CompletionStage<CreateThing> createThingWithInitialPolicy(final CreateThing createThing,
              final Enforcer enforcer)
focal_class.identifier: createThingWithInitialPolicy
focal_class.modifiers: private
focal_class.parameters: (final CreateThing createThing,
              final Enforcer enforcer)
focal_class.return: CompletionStage<CreateThing>
focal_class.signature: CompletionStage<CreateThing> createThingWithInitialPolicy(final CreateThing createThing,
              final Enforcer enforcer)
focal_class.class_method_signature: ThingCommandEnforcement.createPolicyAndThing(final CreatePolicy createPolicy,
              final CreateThing createThingWithoutPolicyId)
focal_class.full_signature: private CompletionStage<CreateThing> createPolicyAndThing(final CreatePolicy createPolicy,
              final CreateThing createThingWithoutPolicyId)
focal_class.identifier: createPolicyAndThing
focal_class.modifiers: private
focal_class.parameters: (final CreatePolicy createPolicy,
              final CreateThing createThingWithoutPolicyId)
focal_class.return: CompletionStage<CreateThing>
focal_class.signature: CompletionStage<CreateThing> createPolicyAndThing(final CreatePolicy createPolicy,
              final CreateThing createThingWithoutPolicyId)
focal_class.class_method_signature: ThingCommandEnforcement.handlePolicyResponseForCreateThing(final CreatePolicy createPolicy, final CreateThing createThing,
              final Object policyResponse)
focal_class.full_signature: private void handlePolicyResponseForCreateThing(final CreatePolicy createPolicy, final CreateThing createThing,
              final Object policyResponse)
focal_class.identifier: handlePolicyResponseForCreateThing
focal_class.modifiers: private
focal_class.parameters: (final CreatePolicy createPolicy, final CreateThing createThing,
              final Object policyResponse)
focal_class.return: void
focal_class.signature: void handlePolicyResponseForCreateThing(final CreatePolicy createPolicy, final CreateThing createThing,
              final Object policyResponse)
focal_class.class_method_signature: ThingCommandEnforcement.shouldReportInitialPolicyCreationFailure(final Object policyResponse)
focal_class.full_signature: private static boolean shouldReportInitialPolicyCreationFailure(final Object policyResponse)
focal_class.identifier: shouldReportInitialPolicyCreationFailure
focal_class.modifiers: private static
focal_class.parameters: (final Object policyResponse)
focal_class.return: boolean
focal_class.signature: boolean shouldReportInitialPolicyCreationFailure(final Object policyResponse)
focal_class.class_method_signature: ThingCommandEnforcement.reportInitialPolicyCreationFailure(final PolicyId policyId,
              final CreateThing command)
focal_class.full_signature: private static ThingNotCreatableException reportInitialPolicyCreationFailure(final PolicyId policyId,
              final CreateThing command)
focal_class.identifier: reportInitialPolicyCreationFailure
focal_class.modifiers: private static
focal_class.parameters: (final PolicyId policyId,
              final CreateThing command)
focal_class.return: ThingNotCreatableException
focal_class.signature: ThingNotCreatableException reportInitialPolicyCreationFailure(final PolicyId policyId,
              final CreateThing command)
focal_class.class_method_signature: ThingCommandEnforcement.getInlinedOrDefaultPolicyForCreateThing(final CreateThing createThing)
focal_class.full_signature: private static Optional<Policy> getInlinedOrDefaultPolicyForCreateThing(final CreateThing createThing)
focal_class.identifier: getInlinedOrDefaultPolicyForCreateThing
focal_class.modifiers: private static
focal_class.parameters: (final CreateThing createThing)
focal_class.return: Optional<Policy>
focal_class.signature: Optional<Policy> getInlinedOrDefaultPolicyForCreateThing(final CreateThing createThing)
focal_class.class_method_signature: ThingCommandEnforcement.getDefaultPolicy(final AuthorizationContext authorizationContext,
              final ThingId thingId)
focal_class.full_signature: private static Optional<Policy> getDefaultPolicy(final AuthorizationContext authorizationContext,
              final ThingId thingId)
focal_class.identifier: getDefaultPolicy
focal_class.modifiers: private static
focal_class.parameters: (final AuthorizationContext authorizationContext,
              final ThingId thingId)
focal_class.return: Optional<Policy>
focal_class.signature: Optional<Policy> getDefaultPolicy(final AuthorizationContext authorizationContext,
              final ThingId thingId)
focal_class.class_method_signature: ThingCommandEnforcement.isAclEnforcer(final Entry<EntityIdWithResourceType> enforcerKeyEntry)
focal_class.full_signature: private static boolean isAclEnforcer(final Entry<EntityIdWithResourceType> enforcerKeyEntry)
focal_class.identifier: isAclEnforcer
focal_class.modifiers: private static
focal_class.parameters: (final Entry<EntityIdWithResourceType> enforcerKeyEntry)
focal_class.return: boolean
focal_class.signature: boolean isAclEnforcer(final Entry<EntityIdWithResourceType> enforcerKeyEntry)
focal_class.superclass: extends AbstractEnforcement<ThingCommand<?>>
focal_method.body: private static ThingCommand transformModifyThingToCreateThing(final ThingCommand receivedCommand) {
          if (receivedCommand instanceof ModifyThing) {
              final ModifyThing modifyThing = (ModifyThing) receivedCommand;
              final JsonObject initialPolicy = modifyThing.getInitialPolicy().orElse(null);
              final String policyIdOrPlaceholder = modifyThing.getPolicyIdOrPlaceholder().orElse(null);
              final Thing newThing = modifyThing.getThing().toBuilder()
                      .setId(modifyThing.getThingEntityId())
                      .build();
              return CreateThing.of(newThing, initialPolicy, policyIdOrPlaceholder, modifyThing.getDittoHeaders());
          } else {
              return receivedCommand;
          }
      }
focal_method.class_method_signature: ThingCommandEnforcement.transformModifyThingToCreateThing(final ThingCommand receivedCommand)
focal_method.full_signature: private static ThingCommand transformModifyThingToCreateThing(final ThingCommand receivedCommand)
focal_method.identifier: transformModifyThingToCreateThing
focal_method.invocations: orElse getInitialPolicy orElse getPolicyIdOrPlaceholder build setId toBuilder getThing getThingEntityId of getDittoHeaders
focal_method.modifiers: private static
focal_method.parameters: (final ThingCommand receivedCommand)
focal_method.return: ThingCommand
focal_method.signature: ThingCommand transformModifyThingToCreateThing(final ThingCommand receivedCommand)