package io.github.ibuildthecloud.gdapi.model.impl; import io.github.ibuildthecloud.gdapi.exception.ClientVisibleException; import io.github.ibuildthecloud.gdapi.model.ApiError; import io.github.ibuildthecloud.gdapi.url.UrlBuilder; import io.github.ibuildthecloud.gdapi.util.ResponseCodes; import java.net.URL; import java.util.Map; import java.util.UUID; public class ErrorImpl extends ResourceImpl implements ApiError { int status; String code, message, detail; public ErrorImpl() { this.status = ResponseCodes.UNPROCESSABLE_ENTITY; setType("error"); setId(UUID.randomUUID().toString()); } public ErrorImpl(ClientVisibleException e) { this(e.getStatus(), e.getCode(), e.getMessage(), e.getDetail()); } public ErrorImpl(int status) { this(status, null); } public ErrorImpl(int status, String code) { this(status, code, null, null); } public ErrorImpl(int status, String code, String message, String detail) { this(); this.status = status; this.code = code; this.message = message; this.detail = detail; } @Override public int getStatus() { return status; } public void setStatus(int status) { this.status = status; } @Override public String getCode() { return code; } public void setCode(String code) { this.code = code; } @Override public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } @Override public String getDetail() { return detail; } public void setDetail(String detail) { this.detail = detail; } @Override public Map<String, URL> getLinks() { Map<String, URL> links = super.getLinks(); links.remove(UrlBuilder.SELF); return links; } }