diff --git a/sigla-web/src/main/java/it/cnr/contab/util/servlet/JSONRequest.java b/sigla-web/src/main/java/it/cnr/contab/util/servlet/JSONRequest.java index 7d6f771124..2f69ff5510 100644 --- a/sigla-web/src/main/java/it/cnr/contab/util/servlet/JSONRequest.java +++ b/sigla-web/src/main/java/it/cnr/contab/util/servlet/JSONRequest.java @@ -1,8 +1,10 @@ package it.cnr.contab.util.servlet; +import it.cnr.jada.comp.ComponentException; import it.cnr.jada.persistency.sql.SQLBuilder; import java.util.List; +import java.util.Optional; public class JSONRequest extends JSONRESTRequest{ private Integer activePage; @@ -115,6 +117,24 @@ else if (operator.equalsIgnoreCase("isnotnull")) return SQLBuilder.ISNOTNULL; return SQLBuilder.EQUALS; } + + @Override + public String toString() { + return "Clause {" + + "condition='" + condition + '\'' + + ", fieldName='" + fieldName + '\'' + + ", operator='" + operator + '\'' + + ", fieldValue=" + fieldValue + + '}'; + } + + public void validate() throws ComponentException{ + if (!Optional.ofNullable(getSQLOperator()).isPresent() || !Optional.ofNullable(getFieldName()).isPresent()) + throw new ComponentException("Cannot add clause " + this); + if (!(getSQLOperator() == SQLBuilder.ISNULL || getSQLOperator() == SQLBuilder.ISNOTNULL) && + !Optional.ofNullable(getFieldValue()).isPresent()) + throw new ComponentException("Cannot add clause " + this); + } } } diff --git a/sigla-web/src/main/java/it/cnr/contab/util/servlet/RESTServlet.java b/sigla-web/src/main/java/it/cnr/contab/util/servlet/RESTServlet.java index dfe55e01da..89e404d4bf 100644 --- a/sigla-web/src/main/java/it/cnr/contab/util/servlet/RESTServlet.java +++ b/sigla-web/src/main/java/it/cnr/contab/util/servlet/RESTServlet.java @@ -29,6 +29,7 @@ import it.cnr.jada.comp.ApplicationException; import it.cnr.jada.comp.ComponentException; import it.cnr.jada.persistency.sql.CompoundFindClause; +import it.cnr.jada.persistency.sql.SQLBuilder; import it.cnr.jada.util.OrderConstants; import it.cnr.jada.util.RemoteIterator; import it.cnr.jada.util.action.ConsultazioniBP; @@ -141,7 +142,12 @@ protected void execute(HttpServletRequest req, HttpServletResponse resp, String CompoundFindClause compoundFindClause = new CompoundFindClause(); for (Clause clause : jsonRequest.getClauses()) { logger.info("RequestedSessionId: "+req.getRequestedSessionId() + ". Clause. Condition: "+clause.getCondition()+", fieldName: "+clause.getFieldName()+", Operator: "+clause.getOperator()+", fieldValue: "+clause.getFieldValue()); - compoundFindClause.addClause(clause.getCondition(), clause.getFieldName(), clause.getSQLOperator(), clause.getFieldValue()); + clause.validate(); + compoundFindClause.addClause( + clause.getCondition(), + clause.getFieldName(), + clause.getSQLOperator(), + clause.getFieldValue()); } consBP.setFindclause(compoundFindClause); }