1 package org.collectionspace.services.common.document;
3 import org.collectionspace.services.common.context.MultipartServiceContext;
4 import org.collectionspace.services.common.context.ServiceContext;
5 import org.collectionspace.services.common.document.DocumentHandler.Action;
6 import org.slf4j.Logger;
7 import org.slf4j.LoggerFactory;
9 // TODO: Auto-generated Javadoc
11 * The Class ValidatorHandlerImpl.
13 public abstract class ValidatorHandlerImpl<IT, OT> implements ValidatorHandler<IT, OT> {
18 private final Logger logger = LoggerFactory.getLogger(ValidatorHandlerImpl.class);
19 private ServiceContext<IT, OT> ctx;
21 protected ServiceContext<IT, OT> getServiceContext() {
24 // gets reset by calls to setServiceContext() method
25 protected boolean enforceAsserts = true;
27 public boolean getEnforceAsserts() {
28 return enforceAsserts;
31 public void setEnforceAsserts(ServiceContext<IT, OT> ctx) {
32 Boolean disableAssertsAttr = ctx.getServiceBinding().isDisableAsserts();
33 if (disableAssertsAttr == null) {
34 enforceAsserts = true;
36 enforceAsserts = !disableAssertsAttr.booleanValue();
40 protected void setServiceContext(ServiceContext<IT, OT> ctx) {
45 protected void CS_ASSERT(boolean expression, String errorMsg) throws AssertionError {
46 if (expression != true) {
47 if (errorMsg == null) {
48 errorMsg = "Validation exception occurred in: "
49 + this.getClass().getName();
51 throw new AssertionError(errorMsg);
55 protected void CS_ASSERT(boolean expression) throws AssertionError {
56 CS_ASSERT(expression, null);
59 private void init(ServiceContext<IT, OT> ctx) {
60 setEnforceAsserts(ctx);
61 setServiceContext(ctx);
66 * org.collectionspace.services.common.document.ValidatorHandler#validate(org.collectionspace.services.common.document.DocumentHandler.Action,
67 * org.collectionspace.services.common.context.ServiceContext)
70 public void validate(Action action, ServiceContext<IT, OT> ctx)
71 throws InvalidDocumentException {
91 throw new UnsupportedOperationException("ValidatorHandlerImpl: Unknown action = "
96 protected boolean enforceAsserts() {
97 return !ctx.getServiceBinding().isDisableAsserts();
100 protected Object getCommonPart() {
101 Object result = null;
104 MultipartServiceContext multiPartCtx = (MultipartServiceContext) getServiceContext();
105 result = multiPartCtx.getInputPart(ctx.getCommonPartLabel(),
106 getCommonPartClass());
107 } catch (Exception e) {
108 if (logger.isDebugEnabled() == true) {
109 logger.debug("Could not extract common part from multipart input.", e);
116 abstract protected Class<?> getCommonPartClass();
123 abstract protected void handleCreate() throws InvalidDocumentException;
130 abstract protected void handleGet() throws InvalidDocumentException;
137 abstract protected void handleGetAll() throws InvalidDocumentException;
144 abstract protected void handleUpdate() throws InvalidDocumentException;
151 abstract protected void handleDelete() throws InvalidDocumentException;