package ftp.broker; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.cloudfoundry.community.servicebroker.model.CreateServiceInstanceRequest; import org.cloudfoundry.community.servicebroker.model.ServiceInstance; import org.cloudfoundry.community.servicebroker.model.UpdateServiceInstanceRequest; import org.springframework.data.domain.Modifiable; public class PersistableServiceInstance extends ServiceInstance implements Modifiable<String> { private transient boolean persisted; public PersistableServiceInstance(String serviceDefinitionId, String planId, String organizationGuid, String spaceGuid, String serviceInstanceId) { super(new CreateServiceInstanceRequest(serviceDefinitionId, planId, organizationGuid, spaceGuid) .withServiceInstanceId(serviceInstanceId)); } public PersistableServiceInstance(String serviceDefinitionId, String planId, String organizationGuid, String spaceGuid, String serviceInstanceId, boolean persisted) { super(new CreateServiceInstanceRequest(serviceDefinitionId, planId, organizationGuid, spaceGuid) .withServiceInstanceId(serviceInstanceId)); this.persisted = persisted; } public PersistableServiceInstance() { super(new UpdateServiceInstanceRequest("noOpPlanId")); } @Override public String toString() { return ReflectionToStringBuilder.reflectionToString(this); } @Override public boolean equals(Object obj) { return EqualsBuilder.reflectionEquals(this, obj); } @Override public String getId() { return this.getServiceInstanceId(); } @Override public boolean isNew() { return !persisted; } @Override public boolean isPersisted() { return persisted; } @Override public void setPersisted(boolean persisted) { this.persisted = persisted; } }