test_class.declarator: AUTHORIZATION_SUBJECT =
              AuthorizationModelFactory.newAuthSubject(
                      SubjectId.newInstance(SubjectIssuer.GOOGLE, "testuser").toString())
test_class.modifier: private static final
test_class.original_string: private static final AuthorizationSubject AUTHORIZATION_SUBJECT =
              AuthorizationModelFactory.newAuthSubject(
                      SubjectId.newInstance(SubjectIssuer.GOOGLE, "testuser").toString());
test_class.type: AuthorizationSubject
test_class.var_name: AUTHORIZATION_SUBJECT
test_class.declarator: PERMISSIONS = Thing.MIN_REQUIRED_PERMISSIONS
test_class.modifier: private static final
test_class.original_string: private static final Permissions PERMISSIONS = Thing.MIN_REQUIRED_PERMISSIONS;
test_class.type: Permissions
test_class.var_name: PERMISSIONS
test_class.declarator: JSON_PARSE_OPTIONS =
              JsonFactory.newParseOptionsBuilder().withoutUrlDecoding().build()
test_class.modifier: private static final
test_class.original_string: private static final JsonParseOptions JSON_PARSE_OPTIONS =
              JsonFactory.newParseOptionsBuilder().withoutUrlDecoding().build();
test_class.type: JsonParseOptions
test_class.var_name: JSON_PARSE_OPTIONS
test_class.declarator: watchman = new TestedMethodLoggingWatcher(LoggerFactory.getLogger(getClass()))
test_class.modifier: @Rule
      public final
test_class.original_string: @Rule
      public final TestWatcher watchman = new TestedMethodLoggingWatcher(LoggerFactory.getLogger(getClass()));
test_class.type: TestWatcher
test_class.var_name: watchman
test_class.file: services/things/persistence/src/test/java/org/eclipse/ditto/services/things/persistence/actors/ThingPersistenceActorTest.java
test_class.identifier: ThingPersistenceActorTest
test_class.superclass: extends PersistenceActorTestBase
test_case.body: @Test
      public void tryToCreateThingWithDifferentThingId() {
          final ThingId thingIdOfActor = ThingId.of("test.ns", "23420815");
          final Thing thing = createThingV2WithRandomId();
          final CreateThing createThing = CreateThing.of(thing, null, dittoHeadersV2);
  
          final Props props = ThingPersistenceActor.props(thingIdOfActor, getDistributedPub());
          final TestActorRef<ThingPersistenceActor> underTest = TestActorRef.create(actorSystem, props);
          final ThingPersistenceActor thingPersistenceActor = underTest.underlyingActor();
          final PartialFunction<Object, BoxedUnit> receiveCommand = thingPersistenceActor.receiveCommand();
  
          try {
              receiveCommand.apply(createThing);
              fail("Expected IllegalArgumentException to be thrown.");
          } catch (final Exception e) {
              assertThat(e).isInstanceOf(IllegalArgumentException.class);
          }
      }
test_case.class_method_signature: ThingPersistenceActorTest.tryToCreateThingWithDifferentThingId()
test_case.full_signature: @Test public void tryToCreateThingWithDifferentThingId()
test_case.identifier: tryToCreateThingWithDifferentThingId
test_case.invocations: of createThingV2WithRandomId of props getDistributedPub create underlyingActor receiveCommand apply fail isInstanceOf assertThat
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void tryToCreateThingWithDifferentThingId()
focal_class.declarator: PERSISTENCE_ID_PREFIX = "thing:"
focal_class.modifier: static final
focal_class.original_string: static final String PERSISTENCE_ID_PREFIX = "thing:";
focal_class.type: String
focal_class.var_name: PERSISTENCE_ID_PREFIX
focal_class.declarator: JOURNAL_PLUGIN_ID = "akka-contrib-mongodb-persistence-things-journal"
focal_class.modifier: static final
focal_class.original_string: static final String JOURNAL_PLUGIN_ID = "akka-contrib-mongodb-persistence-things-journal";
focal_class.type: String
focal_class.var_name: JOURNAL_PLUGIN_ID
focal_class.declarator: SNAPSHOT_PLUGIN_ID = "akka-contrib-mongodb-persistence-things-snapshots"
focal_class.modifier: static final
focal_class.original_string: static final String SNAPSHOT_PLUGIN_ID = "akka-contrib-mongodb-persistence-things-snapshots";
focal_class.type: String
focal_class.var_name: SNAPSHOT_PLUGIN_ID
focal_class.declarator: thingConfig
focal_class.modifier: private final
focal_class.original_string: private final ThingConfig thingConfig;
focal_class.type: ThingConfig
focal_class.var_name: thingConfig
focal_class.declarator: distributedPub
focal_class.modifier: private final
focal_class.original_string: private final DistributedPub<ThingEvent> distributedPub;
focal_class.type: DistributedPub<ThingEvent>
focal_class.var_name: distributedPub
focal_class.file: services/things/persistence/src/main/java/org/eclipse/ditto/services/things/persistence/actors/ThingPersistenceActor.java
focal_class.identifier: ThingPersistenceActor
focal_class.class_method_signature: ThingPersistenceActor.ThingPersistenceActor(final ThingId thingId, final DistributedPub<ThingEvent> distributedPub,
              final SnapshotAdapter<Thing> snapshotAdapter)
focal_class.full_signature: @SuppressWarnings("unused") private  ThingPersistenceActor(final ThingId thingId, final DistributedPub<ThingEvent> distributedPub,
              final SnapshotAdapter<Thing> snapshotAdapter)
focal_class.identifier: ThingPersistenceActor
focal_class.modifiers: @SuppressWarnings("unused") private
focal_class.parameters: (final ThingId thingId, final DistributedPub<ThingEvent> distributedPub,
              final SnapshotAdapter<Thing> snapshotAdapter)
focal_class.signature:  ThingPersistenceActor(final ThingId thingId, final DistributedPub<ThingEvent> distributedPub,
              final SnapshotAdapter<Thing> snapshotAdapter)
focal_class.class_method_signature: ThingPersistenceActor.props(final ThingId thingId, final DistributedPub<ThingEvent> distributedPub,
              final SnapshotAdapter<Thing> snapshotAdapter)
focal_class.full_signature: public static Props props(final ThingId thingId, final DistributedPub<ThingEvent> distributedPub,
              final SnapshotAdapter<Thing> snapshotAdapter)
focal_class.identifier: props
focal_class.modifiers: public static
focal_class.parameters: (final ThingId thingId, final DistributedPub<ThingEvent> distributedPub,
              final SnapshotAdapter<Thing> snapshotAdapter)
focal_class.return: Props
focal_class.signature: Props props(final ThingId thingId, final DistributedPub<ThingEvent> distributedPub,
              final SnapshotAdapter<Thing> snapshotAdapter)
focal_class.class_method_signature: ThingPersistenceActor.props(final ThingId thingId, final DistributedPub<ThingEvent> distributedPub)
focal_class.full_signature: public static Props props(final ThingId thingId, final DistributedPub<ThingEvent> distributedPub)
focal_class.identifier: props
focal_class.modifiers: public static
focal_class.parameters: (final ThingId thingId, final DistributedPub<ThingEvent> distributedPub)
focal_class.return: Props
focal_class.signature: Props props(final ThingId thingId, final DistributedPub<ThingEvent> distributedPub)
focal_class.class_method_signature: ThingPersistenceActor.persistenceId()
focal_class.full_signature: @Override public String persistenceId()
focal_class.identifier: persistenceId
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String persistenceId()
focal_class.class_method_signature: ThingPersistenceActor.journalPluginId()
focal_class.full_signature: @Override public String journalPluginId()
focal_class.identifier: journalPluginId
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String journalPluginId()
focal_class.class_method_signature: ThingPersistenceActor.snapshotPluginId()
focal_class.full_signature: @Override public String snapshotPluginId()
focal_class.identifier: snapshotPluginId
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String snapshotPluginId()
focal_class.class_method_signature: ThingPersistenceActor.getEventClass()
focal_class.full_signature: @Override protected Class<ThingEvent> getEventClass()
focal_class.identifier: getEventClass
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: Class<ThingEvent>
focal_class.signature: Class<ThingEvent> getEventClass()
focal_class.class_method_signature: ThingPersistenceActor.getStrategyContext()
focal_class.full_signature: @Override protected CommandStrategy.Context<ThingId> getStrategyContext()
focal_class.identifier: getStrategyContext
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: CommandStrategy.Context<ThingId>
focal_class.signature: CommandStrategy.Context<ThingId> getStrategyContext()
focal_class.class_method_signature: ThingPersistenceActor.getCreatedStrategy()
focal_class.full_signature: @Override protected ThingCommandStrategies getCreatedStrategy()
focal_class.identifier: getCreatedStrategy
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: ThingCommandStrategies
focal_class.signature: ThingCommandStrategies getCreatedStrategy()
focal_class.class_method_signature: ThingPersistenceActor.getDeletedStrategy()
focal_class.full_signature: @Override protected CommandStrategy<CreateThing, Thing, ThingId, Result<ThingEvent>> getDeletedStrategy()
focal_class.identifier: getDeletedStrategy
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: CommandStrategy<CreateThing, Thing, ThingId, Result<ThingEvent>>
focal_class.signature: CommandStrategy<CreateThing, Thing, ThingId, Result<ThingEvent>> getDeletedStrategy()
focal_class.class_method_signature: ThingPersistenceActor.getEventStrategy()
focal_class.full_signature: @Override protected EventStrategy<ThingEvent, Thing> getEventStrategy()
focal_class.identifier: getEventStrategy
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: EventStrategy<ThingEvent, Thing>
focal_class.signature: EventStrategy<ThingEvent, Thing> getEventStrategy()
focal_class.class_method_signature: ThingPersistenceActor.getActivityCheckConfig()
focal_class.full_signature: @Override protected ActivityCheckConfig getActivityCheckConfig()
focal_class.identifier: getActivityCheckConfig
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: ActivityCheckConfig
focal_class.signature: ActivityCheckConfig getActivityCheckConfig()
focal_class.class_method_signature: ThingPersistenceActor.getSnapshotConfig()
focal_class.full_signature: @Override protected SnapshotConfig getSnapshotConfig()
focal_class.identifier: getSnapshotConfig
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: SnapshotConfig
focal_class.signature: SnapshotConfig getSnapshotConfig()
focal_class.class_method_signature: ThingPersistenceActor.entityExistsAsDeleted()
focal_class.full_signature: @Override protected boolean entityExistsAsDeleted()
focal_class.identifier: entityExistsAsDeleted
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean entityExistsAsDeleted()
focal_class.class_method_signature: ThingPersistenceActor.newNotAccessibleExceptionBuilder()
focal_class.full_signature: @Override protected DittoRuntimeExceptionBuilder newNotAccessibleExceptionBuilder()
focal_class.identifier: newNotAccessibleExceptionBuilder
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: DittoRuntimeExceptionBuilder
focal_class.signature: DittoRuntimeExceptionBuilder newNotAccessibleExceptionBuilder()
focal_class.class_method_signature: ThingPersistenceActor.recoveryCompleted(final RecoveryCompleted event)
focal_class.full_signature: @Override protected void recoveryCompleted(final RecoveryCompleted event)
focal_class.identifier: recoveryCompleted
focal_class.modifiers: @Override protected
focal_class.parameters: (final RecoveryCompleted event)
focal_class.return: void
focal_class.signature: void recoveryCompleted(final RecoveryCompleted event)
focal_class.class_method_signature: ThingPersistenceActor.publishEvent(final ThingEvent event)
focal_class.full_signature: @Override protected void publishEvent(final ThingEvent event)
focal_class.identifier: publishEvent
focal_class.modifiers: @Override protected
focal_class.parameters: (final ThingEvent event)
focal_class.return: void
focal_class.signature: void publishEvent(final ThingEvent event)
focal_class.class_method_signature: ThingPersistenceActor.getEntitySchemaVersion(final Thing entity)
focal_class.full_signature: @Override protected JsonSchemaVersion getEntitySchemaVersion(final Thing entity)
focal_class.identifier: getEntitySchemaVersion
focal_class.modifiers: @Override protected
focal_class.parameters: (final Thing entity)
focal_class.return: JsonSchemaVersion
focal_class.signature: JsonSchemaVersion getEntitySchemaVersion(final Thing entity)
focal_class.class_method_signature: ThingPersistenceActor.enhanceThingWithLifecycle(final Thing thing)
focal_class.full_signature: private static Thing enhanceThingWithLifecycle(final Thing thing)
focal_class.identifier: enhanceThingWithLifecycle
focal_class.modifiers: private static
focal_class.parameters: (final Thing thing)
focal_class.return: Thing
focal_class.signature: Thing enhanceThingWithLifecycle(final Thing thing)
focal_class.superclass: extends AbstractShardedPersistenceActor<Command, Thing, ThingId, ThingId, ThingEvent>
focal_method.body: public static Props props(final ThingId thingId, final DistributedPub<ThingEvent> distributedPub,
              final SnapshotAdapter<Thing> snapshotAdapter) {
  
          return Props.create(ThingPersistenceActor.class, thingId, distributedPub, snapshotAdapter);
      }
focal_method.class_method_signature: ThingPersistenceActor.props(final ThingId thingId, final DistributedPub<ThingEvent> distributedPub,
              final SnapshotAdapter<Thing> snapshotAdapter)
focal_method.full_signature: public static Props props(final ThingId thingId, final DistributedPub<ThingEvent> distributedPub,
              final SnapshotAdapter<Thing> snapshotAdapter)
focal_method.identifier: props
focal_method.invocations: create
focal_method.modifiers: public static
focal_method.parameters: (final ThingId thingId, final DistributedPub<ThingEvent> distributedPub,
              final SnapshotAdapter<Thing> snapshotAdapter)
focal_method.return: Props
focal_method.signature: Props props(final ThingId thingId, final DistributedPub<ThingEvent> distributedPub,
              final SnapshotAdapter<Thing> snapshotAdapter)