org.javers.repository.jql.ValueObjectIdDTO 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.repository.jql;
import org.javers.common.validation.Validate;
import static org.javers.repository.jql.InstanceIdDTO.instanceId;
/**
* @author bartosz walacik
*/
public final class ValueObjectIdDTO extends GlobalIdDTO {
private final GlobalIdDTO ownerIdDTO;
private final String path;
ValueObjectIdDTO(Class ownerClass, Object ownerLocalId, String path) {
Validate.argumentsAreNotNull(ownerClass, ownerLocalId, path);
ownerIdDTO = instanceId(ownerLocalId, ownerClass);
this.path = path;
}
ValueObjectIdDTO(Class ownerClass, String path) {
Validate.argumentsAreNotNull(ownerClass, path);
ownerIdDTO = UnboundedValueObjectIdDTO.unboundedValueObjectId(ownerClass);
this.path = path;
}
public static ValueObjectIdDTO valueObjectId(Object ownerLocalId, Class ownerClass, String fragment){
return new ValueObjectIdDTO(ownerClass, ownerLocalId, fragment);
}
public static ValueObjectIdDTO withUnboundedValueObjectOwner(Class ownerClass, String fragment){
return new ValueObjectIdDTO(ownerClass, fragment);
}
@Override
public String value() {
return ownerIdDTO.value()+"#"+ path;
}
public GlobalIdDTO getOwnerIdDTO() {
return ownerIdDTO;
}
public String getPath() {
return path;
}
}