public Commit createTerminalByGlobalId(String author, GlobalId removedId) { Validate.argumentsAreNotNull(author, removedId); Optional<CdoSnapshot> previousSnapshot = javersRepository.getLatest(removedId); if (previousSnapshot.isEmpty()) { throw new JaversException( JaversExceptionCode.CANT_DELETE_OBJECT_NOT_FOUND, removedId.value()); } CommitMetadata commitMetadata = nextCommit(author); CdoSnapshot terminalSnapshot = snapshotFactory.createTerminal(removedId, previousSnapshot.get(), commitMetadata); Diff diff = diffFactory.singleTerminal(removedId, commitMetadata); return new Commit(commitMetadata, Lists.asList(terminalSnapshot), diff); }
/** @author bartosz walacik */ public class AnnotationNamesProvider { private final Set<String> entityAliases = new HashSet<>(); private final Set<String> typeNameAliases = new HashSet<>(); private final Set<String> valueObjectAliases = new HashSet<>(); private final Set<String> valueAliases = new HashSet<>(); private final Set<String> transientPropertyAliases = new HashSet<>(); private final List<AnnotationsNameSpace> namesProviders = Lists.immutableListOf(new JaversAnnotationsNamesSpace(), new JPAAnnotationsNameSpace()); public AnnotationNamesProvider() { for (AnnotationsNameSpace provider : namesProviders) { entityAliases.addAll(provider.getEntityAliases()); valueObjectAliases.addAll(provider.getValueObjectAliases()); valueAliases.addAll(provider.getValueAliases()); transientPropertyAliases.addAll(provider.getTransientPropertyAliases()); typeNameAliases.addAll(provider.getTypeNameAliases()); } } boolean isTypeName(Annotation ann) { return typeNameAliases.contains(ann.annotationType().getSimpleName()); } boolean isEntityAlias(Annotation ann) { return entityAliases.contains(ann.annotationType().getSimpleName()); } boolean isValueObjectAlias(Annotation ann) { return valueObjectAliases.contains(ann.annotationType().getSimpleName()); } boolean isValueAlias(Annotation ann) { return valueAliases.contains(ann.annotationType().getSimpleName()); } public Set<String> getTransientAliases() { return Collections.unmodifiableSet(transientPropertyAliases); } }