public class JaversBuilder extends AbstractJaversBuilder
Javers javers = JaversBuilder.javers().build();To build a JaVers instance with Entity type registered:
Javers javers = JaversBuilder.javers()
.registerEntity(MyEntity.class)
.build();
| Modifier | Constructor and Description |
|---|---|
protected |
JaversBuilder()
use static factory method
javers() |
| Modifier and Type | Method and Description |
|---|---|
protected Javers |
assembleJaversInstance() |
Javers |
build() |
static JaversBuilder |
javers() |
<T> JaversBuilder |
registerCustomComparator(CustomPropertyComparator<T,?> comparator,
java.lang.Class<T> customType)
Registers a custom comparator for a given Value type
(type of a property owned by Entity or ValueObject).
|
JaversBuilder |
registerEntities(java.lang.Class<?>... entityClasses) |
JaversBuilder |
registerEntity(java.lang.Class<?> entityClass)
Registers an
EntityType. |
JaversBuilder |
registerEntity(EntityDefinition entityDefinition)
Registers an
EntityType. |
JaversBuilder |
registerJaversRepository(JaversRepository repository) |
JaversBuilder |
registerValue(java.lang.Class<?> valueClass)
Registers a simple value type (see
ValueType). |
JaversBuilder |
registerValueGsonTypeAdapter(java.lang.Class valueType,
com.google.gson.TypeAdapter nativeAdapter)
|
JaversBuilder |
registerValueObject(java.lang.Class<?> valueObjectClass)
Registers a
ValueObjectType. |
JaversBuilder |
registerValueObject(ValueObjectDefinition valueObjectDefinition)
Registers a
ValueObjectType. |
JaversBuilder |
registerValueObjects(java.lang.Class<?>... valueObjectClasses) |
JaversBuilder |
registerValueTypeAdapter(JsonTypeAdapter typeAdapter)
Registers a
ValueType and its custom JSON adapter. |
JaversBuilder |
scanTypeName(java.lang.Class userType)
Register your class with @
TypeName annotation
in order to use them in all kinds of JQL queries(without getting TYPE_NAME_NOT_FOUND exception). |
JaversBuilder |
scanTypeNames(java.lang.String packageToScan)
Not implemented!
If implemented, allows you to register all your classes with @ TypeName annotation
(within given package) in order to use them in all kinds of JQL queries (without getting TYPE_NAME_NOT_FOUND exception). |
JaversBuilder |
withDateTimeProvider(DateProvider dateProvider)
DateProvider providers current date for
Commit.getCommitDate(). |
JaversBuilder |
withListCompareAlgorithm(ListCompareAlgorithm algorithm)
Choose between two algorithms for comparing list: ListCompareAlgorithm.SIMPLE
or ListCompareAlgorithm.LEVENSHTEIN_DISTANCE.
|
JaversBuilder |
withMappingStyle(MappingStyle mappingStyle)
Default style is
MappingStyle.FIELD. |
JaversBuilder |
withNewObjectsSnapshot(boolean newObjectsSnapshot)
When enabled,
Javers.compare(Object oldVersion, Object currentVersion)
generates additional 'Snapshots' of new objects (objects added in currentVersion graph). |
JaversBuilder |
withObjectAccessHook(ObjectAccessHook objectAccessHook) |
JaversBuilder |
withPrettyPrint(boolean prettyPrint)
choose between JSON pretty or concise printing style, i.e.
|
JaversBuilder |
withTypeSafeValues(boolean typeSafeValues)
Switch on when you need a type safe serialization for
heterogeneous collections like List, List<Object>.
|
addComponent, addModule, addModule, bindComponent, bootContainer, getComponents, getContainer, getContainerComponent, removeComponentprotected JaversBuilder()
javers()public static JaversBuilder javers()
public Javers build()
protected Javers assembleJaversInstance()
public JaversBuilder registerJaversRepository(JaversRepository repository)
public JaversBuilder registerEntity(java.lang.Class<?> entityClass)
EntityType. DiffIgnore annotations to mark ignored properties.
public JaversBuilder registerValueObject(java.lang.Class<?> valueObjectClass)
ValueObjectType. DiffIgnore annotations to mark ignored properties.
public JaversBuilder registerEntity(EntityDefinition entityDefinition)
EntityType. EntityDefinition is EntityDefinitionBuilder,
for example:
javersBuilder.registerEntity(
EntityDefinitionBuilder.entityDefinition(Person.class)
.withIdPropertyName("id")
.withTypeName("Person")
.withIgnoredProperties("notImportantProperty","transientProperty")
.build());
For simple cases, you can use EntityDefinition constructors,
for example:
javersBuilder.registerEntity( new EntityDefinition(Person.class, "login") );
public JaversBuilder registerValueObject(ValueObjectDefinition valueObjectDefinition)
ValueObjectType. ValueObjectDefinition is ValueObjectDefinitionBuilder.
For example:
javersBuilder.registerValueObject(ValueObjectDefinitionBuilder.valueObjectDefinition(Address.class)
.withIgnoredProperties(ignoredProperties)
.withTypeName(typeName)
.build();
For simple cases, you can use ValueObjectDefinition constructors,
for example:
javersBuilder.registerValueObject( new ValueObjectDefinition(Address.class, "ignored") );
public JaversBuilder scanTypeNames(java.lang.String packageToScan)
public JaversBuilder scanTypeName(java.lang.Class userType)
TypeName annotation
in order to use them in all kinds of JQL queriesJavers.getTypeMapping(Type)public JaversBuilder registerValue(java.lang.Class<?> valueClass)
public JaversBuilder registerValueTypeAdapter(JsonTypeAdapter typeAdapter)
ValueType and its custom JSON adapter.
public JaversBuilder registerValueGsonTypeAdapter(java.lang.Class valueType, com.google.gson.TypeAdapter nativeAdapter)
ValueType and its custom native
Gson adapter.
TypeAdapters implemented.TypeAdapterpublic JaversBuilder withTypeSafeValues(boolean typeSafeValues)
typeSafeValues - default falseJsonConverterBuilder.typeSafeValues(boolean)public JaversBuilder withPrettyPrint(boolean prettyPrint)
{
"value": 5
}
{"value":5}
prettyPrint - default truepublic JaversBuilder registerEntities(java.lang.Class<?>... entityClasses)
public JaversBuilder registerValueObjects(java.lang.Class<?>... valueObjectClasses)
public JaversBuilder withMappingStyle(MappingStyle mappingStyle)
MappingStyle.FIELD.public JaversBuilder withNewObjectsSnapshot(boolean newObjectsSnapshot)
Javers.compare(Object oldVersion, Object currentVersion)
generates additional 'Snapshots' of new objects (objects added in currentVersion graph).
public JaversBuilder withObjectAccessHook(ObjectAccessHook objectAccessHook)
public <T> JaversBuilder registerCustomComparator(CustomPropertyComparator<T,?> comparator, java.lang.Class<T> customType)
PropertyChange.
CustomType.
T - custom typecustomType - class literal to define a custom typeCustomPropertyComparatorpublic JaversBuilder withListCompareAlgorithm(ListCompareAlgorithm algorithm)
algorithm - ListCompareAlgorithm.SIMPLE is used by defaultpublic JaversBuilder withDateTimeProvider(DateProvider dateProvider)
Commit.getCommitDate().