You are viewing a plain text version of this content. The canonical link for it is here.
Posted to taglibs-dev@jakarta.apache.org by pi...@apache.org on 2005/02/17 01:59:55 UTC
cvs commit: jakarta-taglibs/standard/src/org/apache/taglibs/standard/lang/jstl EmptyOperator.java
pierred 2005/02/16 16:59:55
Modified: standard/src/org/apache/taglibs/standard/lang/jstl
EmptyOperator.java
Log:
Patch from Dhiru Pandey for bug #32755
EmptyOperator does not evaluate instances of Collection
Description:
org.apache.taglibs.standard.lang.jstl.EmptyOperator is evaluating only List but
not Collection instances. Any Collection different from List returns not empty.
The fix is simple and proposed by the submitter of the bug Edgar Poce (edgarpoce@gmail.com)
Revision Changes Path
1.4 +186 -93 jakarta-taglibs/standard/src/org/apache/taglibs/standard/lang/jstl/EmptyOperator.java
Index: EmptyOperator.java
===================================================================
RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/lang/jstl/EmptyOperator.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- EmptyOperator.java 28 Feb 2004 01:01:42 -0000 1.3
+++ EmptyOperator.java 17 Feb 2005 00:59:55 -0000 1.4
@@ -12,96 +12,189 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- */
-
-package org.apache.taglibs.standard.lang.jstl;
-
-import java.lang.reflect.Array;
-import java.util.List;
-import java.util.Map;
-
-/**
- *
- * <p>The implementation of the empty operator
- *
- * @author Nathan Abramson - Art Technology Group
- * @version $Change: 181177 $$DateTime: 2001/06/26 08:45:09 $$Author$
- **/
-
-public class EmptyOperator
- extends UnaryOperator
-{
- //-------------------------------------
- // Singleton
- //-------------------------------------
-
- public static final EmptyOperator SINGLETON =
- new EmptyOperator ();
-
- //-------------------------------------
- /**
- *
- * Constructor
- **/
- public EmptyOperator ()
- {
- }
-
- //-------------------------------------
- // Expression methods
- //-------------------------------------
- /**
- *
- * Returns the symbol representing the operator
- **/
- public String getOperatorSymbol ()
- {
- return "empty";
- }
-
- //-------------------------------------
- /**
- *
- * Applies the operator to the given value
- **/
- public Object apply (Object pValue,
- Object pContext,
- Logger pLogger)
- throws ELException
- {
- // See if the value is null
- if (pValue == null) {
- return PrimitiveObjects.getBoolean (true);
- }
-
- // See if the value is a zero-length String
- else if ("".equals (pValue)) {
- return PrimitiveObjects.getBoolean (true);
- }
-
- // See if the value is a zero-length array
- else if (pValue.getClass ().isArray () &&
- Array.getLength (pValue) == 0) {
- return PrimitiveObjects.getBoolean (true);
- }
-
- // See if the value is an empty List
- else if (pValue instanceof List &&
- ((List) pValue).isEmpty ()) {
- return PrimitiveObjects.getBoolean (true);
- }
-
- // See if the value is an empty Map
- else if (pValue instanceof Map &&
- ((Map) pValue).isEmpty ()) {
- return PrimitiveObjects.getBoolean (true);
- }
-
- // Otherwise, not empty
- else {
- return PrimitiveObjects.getBoolean (false);
- }
- }
-
- //-------------------------------------
-}
+ */
+
+
+
+package org.apache.taglibs.standard.lang.jstl;
+
+
+
+import java.lang.reflect.Array;
+
+import java.util.Collection;
+
+import java.util.Map;
+
+
+
+/**
+
+ *
+
+ * <p>The implementation of the empty operator
+
+ *
+
+ * @author Nathan Abramson - Art Technology Group
+
+ * @version $Change: 181177 $$DateTime: 2001/06/26 08:45:09 $$Author$
+
+ **/
+
+
+
+public class EmptyOperator
+
+ extends UnaryOperator
+
+{
+
+ //-------------------------------------
+
+ // Singleton
+
+ //-------------------------------------
+
+
+
+ public static final EmptyOperator SINGLETON =
+
+ new EmptyOperator ();
+
+
+
+ //-------------------------------------
+
+ /**
+
+ *
+
+ * Constructor
+
+ **/
+
+ public EmptyOperator ()
+
+ {
+
+ }
+
+
+
+ //-------------------------------------
+
+ // Expression methods
+
+ //-------------------------------------
+
+ /**
+
+ *
+
+ * Returns the symbol representing the operator
+
+ **/
+
+ public String getOperatorSymbol ()
+
+ {
+
+ return "empty";
+
+ }
+
+
+
+ //-------------------------------------
+
+ /**
+
+ *
+
+ * Applies the operator to the given value
+
+ **/
+
+ public Object apply (Object pValue,
+
+ Object pContext,
+
+ Logger pLogger)
+
+ throws ELException
+
+ {
+
+ // See if the value is null
+
+ if (pValue == null) {
+
+ return PrimitiveObjects.getBoolean (true);
+
+ }
+
+
+
+ // See if the value is a zero-length String
+
+ else if ("".equals (pValue)) {
+
+ return PrimitiveObjects.getBoolean (true);
+
+ }
+
+
+
+ // See if the value is a zero-length array
+
+ else if (pValue.getClass ().isArray () &&
+
+ Array.getLength (pValue) == 0) {
+
+ return PrimitiveObjects.getBoolean (true);
+
+ }
+
+
+
+ // See if the value is an empty Collection
+
+ else if (pValue instanceof Collection &&
+
+ ((Collection) pValue).isEmpty ()) {
+
+ return PrimitiveObjects.getBoolean (true);
+
+ }
+
+
+
+ // See if the value is an empty Map
+
+ else if (pValue instanceof Map &&
+
+ ((Map) pValue).isEmpty ()) {
+
+ return PrimitiveObjects.getBoolean (true);
+
+ }
+
+
+
+ // Otherwise, not empty
+
+ else {
+
+ return PrimitiveObjects.getBoolean (false);
+
+ }
+
+ }
+
+
+
+ //-------------------------------------
+
+}
+
---------------------------------------------------------------------
To unsubscribe, e-mail: taglibs-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: taglibs-dev-help@jakarta.apache.org