[New] Using StrolchElementNotFoundException for missing elements, for 404 in REST
This commit is contained in:
parent
ca1b93d4ea
commit
9c08d87be2
|
@ -24,6 +24,7 @@ import java.util.stream.Stream;
|
||||||
|
|
||||||
import li.strolch.agent.api.ElementMap;
|
import li.strolch.agent.api.ElementMap;
|
||||||
import li.strolch.agent.api.StrolchAgent;
|
import li.strolch.agent.api.StrolchAgent;
|
||||||
|
import li.strolch.exception.StrolchElementNotFoundException;
|
||||||
import li.strolch.exception.StrolchException;
|
import li.strolch.exception.StrolchException;
|
||||||
import li.strolch.model.StrolchRootElement;
|
import li.strolch.model.StrolchRootElement;
|
||||||
import li.strolch.model.Version;
|
import li.strolch.model.Version;
|
||||||
|
@ -88,7 +89,7 @@ public abstract class TransientElementMap<T extends StrolchRootElement> implemen
|
||||||
T t = getBy(tx, StrolchConstants.TEMPLATE, type);
|
T t = getBy(tx, StrolchConstants.TEMPLATE, type);
|
||||||
if (assertExists && t == null) {
|
if (assertExists && t == null) {
|
||||||
String msg = "The template with type \"{0}\" does not exist!"; //$NON-NLS-1$
|
String msg = "The template with type \"{0}\" does not exist!"; //$NON-NLS-1$
|
||||||
throw new StrolchException(MessageFormat.format(msg, type));
|
throw new StrolchElementNotFoundException(MessageFormat.format(msg, type));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (t == null)
|
if (t == null)
|
||||||
|
@ -117,7 +118,7 @@ public abstract class TransientElementMap<T extends StrolchRootElement> implemen
|
||||||
|
|
||||||
if (assertExists && t == null) {
|
if (assertExists && t == null) {
|
||||||
String msg = "The element with type \"{0}\" and id \"{1}\" does not exist!"; //$NON-NLS-1$
|
String msg = "The element with type \"{0}\" and id \"{1}\" does not exist!"; //$NON-NLS-1$
|
||||||
throw new StrolchException(MessageFormat.format(msg, type, id));
|
throw new StrolchElementNotFoundException(MessageFormat.format(msg, type, id));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (t == null)
|
if (t == null)
|
||||||
|
@ -136,7 +137,7 @@ public abstract class TransientElementMap<T extends StrolchRootElement> implemen
|
||||||
T t = getBy(tx, type, id, false);
|
T t = getBy(tx, type, id, false);
|
||||||
if (assertExists && t == null) {
|
if (assertExists && t == null) {
|
||||||
String msg = "The element with type \"{0}\" and id \"{1}\" does not exist for param \"{2}\""; //$NON-NLS-1$
|
String msg = "The element with type \"{0}\" and id \"{1}\" does not exist for param \"{2}\""; //$NON-NLS-1$
|
||||||
throw new StrolchException(MessageFormat.format(msg, type, id, refP.getLocator()));
|
throw new StrolchElementNotFoundException(MessageFormat.format(msg, type, id, refP.getLocator()));
|
||||||
}
|
}
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
@ -154,7 +155,7 @@ public abstract class TransientElementMap<T extends StrolchRootElement> implemen
|
||||||
T t = getBy(tx, type, id, false);
|
T t = getBy(tx, type, id, false);
|
||||||
if (assertExists && t == null) {
|
if (assertExists && t == null) {
|
||||||
String msg = "The element with type \"{0}\" and id \"{1}\" does not exist for param \"{2}\""; //$NON-NLS-1$
|
String msg = "The element with type \"{0}\" and id \"{1}\" does not exist for param \"{2}\""; //$NON-NLS-1$
|
||||||
throw new StrolchException(MessageFormat.format(msg, type, id, refP.getLocator()));
|
throw new StrolchElementNotFoundException(MessageFormat.format(msg, type, id, refP.getLocator()));
|
||||||
}
|
}
|
||||||
return t;
|
return t;
|
||||||
}) //
|
}) //
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
package li.strolch.exception;
|
||||||
|
|
||||||
|
public class StrolchElementNotFoundException extends StrolchModelException {
|
||||||
|
|
||||||
|
public StrolchElementNotFoundException(String message, Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
public StrolchElementNotFoundException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
|
@ -13,6 +13,7 @@ import com.google.gson.Gson;
|
||||||
import com.google.gson.JsonArray;
|
import com.google.gson.JsonArray;
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
|
import li.strolch.exception.StrolchElementNotFoundException;
|
||||||
import li.strolch.privilege.base.AccessDeniedException;
|
import li.strolch.privilege.base.AccessDeniedException;
|
||||||
import li.strolch.privilege.base.PrivilegeException;
|
import li.strolch.privilege.base.PrivilegeException;
|
||||||
import li.strolch.privilege.base.PrivilegeModelException;
|
import li.strolch.privilege.base.PrivilegeModelException;
|
||||||
|
@ -140,6 +141,8 @@ public class ResponseUtil {
|
||||||
status = Status.INTERNAL_SERVER_ERROR;
|
status = Status.INTERNAL_SERVER_ERROR;
|
||||||
} else if (t instanceof PrivilegeException) {
|
} else if (t instanceof PrivilegeException) {
|
||||||
status = Status.UNAUTHORIZED;
|
status = Status.UNAUTHORIZED;
|
||||||
|
} else if (t instanceof StrolchElementNotFoundException) {
|
||||||
|
status = Status.NOT_FOUND;
|
||||||
} else {
|
} else {
|
||||||
status = Status.INTERNAL_SERVER_ERROR;
|
status = Status.INTERNAL_SERVER_ERROR;
|
||||||
}
|
}
|
||||||
|
@ -150,6 +153,8 @@ public class ResponseUtil {
|
||||||
public static Response toResponse(Throwable t) {
|
public static Response toResponse(Throwable t) {
|
||||||
if (t instanceof AccessDeniedException) {
|
if (t instanceof AccessDeniedException) {
|
||||||
return ResponseUtil.toResponse(Status.FORBIDDEN, t);
|
return ResponseUtil.toResponse(Status.FORBIDDEN, t);
|
||||||
|
} else if (t instanceof StrolchElementNotFoundException) {
|
||||||
|
return ResponseUtil.toResponse(Status.NOT_FOUND, t);
|
||||||
} else if (t instanceof PrivilegeModelException) {
|
} else if (t instanceof PrivilegeModelException) {
|
||||||
return ResponseUtil.toResponse(Status.INTERNAL_SERVER_ERROR, t);
|
return ResponseUtil.toResponse(Status.INTERNAL_SERVER_ERROR, t);
|
||||||
} else if (t instanceof PrivilegeException) {
|
} else if (t instanceof PrivilegeException) {
|
||||||
|
|
Loading…
Reference in New Issue