+ /**\r
+ * Returns true if this parameter has a simple value\r
+ * \r
+ * @return true if this parameter has a simple value\r
+ */\r
+ public boolean hasValue() {\r
+ return value != null && value.length()>0;\r
+ }\r
+ \r
+ /**\r
+ * Returns true if this parameter has expressions (complex values)\r
+ * \r
+ * @return true if this parameter has expressions (complex values)\r
+ */\r
+ public boolean hasExpressions() {\r
+ return expressions.size()>0;\r
+ }\r
+ \r
+ /**\r
+ * Returns true if this parameter has expressions of the given type,\r
+ * that is, expressions where the left-of-operator key equals 'expressionField'\r
+ * \r
+ * @param expressionField the type of expression to look for\r
+ * @return true if this parameter has expressions of the given type,\r
+ * that is, expressions where the left-of-operator key equals 'expressionField'\r
+ */\r
+ public boolean hasExpressions(String expressionField) { \r
+ for (Expression expr : expressions) {\r
+ if (expr.getField().equals(expressionField)) {\r
+ return true;\r
+ }\r
+ } \r
+ return false; \r
+ }\r
+ \r
+ /**\r
+ * Returns a URL encoded string of this parameter with name, operator, simple value and/or expressions\r
+ * \r
+ * @return URL encoded string of this parameter with name, operator, simple value and/or expressions\r
+ */\r