org.javers.core.metamodel.clazz.ValueObjectDefinitionBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of javers-core Show documentation
Show all versions of javers-core Show documentation
JaVers - object auditing and diff framework for Java
package org.javers.core.metamodel.clazz;
/**
* Fluent builder for {@link ValueObjectDefinition},
* allows to set all optional attributes:
* ignoredProperties and typeName, for example:
*
* ValueObjectDefinitionBuilder.valueObjectDefinition(Address.class)
* .withIgnoredProperties(ignoredProperties)
* .withTypeName(typeName)
* .build();
*
*
* @since 1.4
* @author bartosz.walacik
*/
public class ValueObjectDefinitionBuilder extends ClientsClassDefinitionBuilder {
private boolean defaultType;
private ValueObjectDefinitionBuilder(Class valueObject) {
super(valueObject);
}
public static ValueObjectDefinitionBuilder valueObjectDefinition(Class valueObject) {
return new ValueObjectDefinitionBuilder(valueObject);
}
public ValueObjectDefinitionBuilder defaultType() {
this.defaultType = true;
return this;
}
@Override
public ValueObjectDefinition build() {
return new ValueObjectDefinition(this);
}
boolean isDefault() {
return defaultType;
}
}