package org.oregami.service; import lombok.ToString; import org.oregami.entities.BaseEntityUUID; import java.util.ArrayList; import java.util.List; /** * * @param <T> */ @ToString public class ServiceResult<T extends BaseEntityUUID> { private T result; private List<ServiceError> errors; public ServiceResult() { this(null); } public ServiceResult(T result) { this(result, new ArrayList<ServiceError>()); } public ServiceResult(T result, List<ServiceError> errors) { this.result = result; this.errors = errors; } public T getResult() { return result; } public void setResult(T result) { this.result = result; } public List<ServiceError> getErrors() { return errors; } public void setErrors(List<ServiceError> errors) { this.errors = errors; } public boolean wasSuccessful() { return errors != null && errors.size() == 0; } public boolean hasErrors() { return !wasSuccessful(); } public void addMessage(ServiceErrorContext context, ServiceErrorMessage message) { errors.add(new ServiceError(context, message)); } public boolean containsError(ServiceError searchError) { for (ServiceError error : errors) { if (error.equals(searchError)) { return true; } } return false; } }