ValueObjectIdDTO(Class ownerClass, Object ownerLocalId, String path) { Validate.argumentsAreNotNull(ownerClass, ownerLocalId, path); ownerIdDTO = instanceId(ownerLocalId, ownerClass); this.path = path; }
@Override public Optional<CdoSnapshot> getLatestSnapshot(Object localId, Class entity) { Validate.argumentsAreNotNull(localId, entity); return queryRunner.runQueryForLatestSnapshot(instanceId(localId, entity)); }
/** * Query for selecting changes (or snapshots) made on a concrete Entity instance. * <br/><br/> * * For example, last changes on "bob" Person: * <pre> * javers.findChanges( QueryBuilder.byInstanceId("bob", Person.class).build() ); * </pre> */ public static QueryBuilder byInstanceId(Object localId, Class entityClass){ Validate.argumentsAreNotNull(localId, entityClass); return new QueryBuilder(new IdFilterDefinition(instanceId(localId, entityClass))); }
@Override public void handle(RepositoryMetadata repositoryMetadata, Object domainObjectOrId) { Map<String, String> props = commitPropertiesProvider.provide(); String author = authorProvider.provide(); if (isIdClass(repositoryMetadata, domainObjectOrId)) { if (javers.findSnapshots(QueryBuilder.byInstanceId(domainObjectOrId, repositoryMetadata.getDomainType()).build()).size() == 0) { return; } javers.commitShallowDeleteById(author, instanceId(domainObjectOrId, repositoryMetadata.getDomainType()), props); } else if (isDomainClass(repositoryMetadata, domainObjectOrId)) { if (javers.findSnapshots(QueryBuilder.byInstance(domainObjectOrId).build()).size() == 0) { return; } javers.commitShallowDelete(author, domainObjectOrId, props); } else { throw new IllegalArgumentException("Domain object or object id expected"); } }