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 lu...@apache.org on 2001/12/18 05:05:54 UTC
cvs commit: jakarta-taglibs/standard/src/org/apache/taglibs/standard/tlv JstlFmtTLV.java
luehe 01/12/17 20:05:54
Modified: standard/src/org/apache/taglibs/standard/tlv JstlFmtTLV.java
Log:
Enforce rule that <messageFormat> with 'messageArgs' attribute must not have any <messageArg> subtags
Revision Changes Path
1.2 +18 -11 jakarta-taglibs/standard/src/org/apache/taglibs/standard/tlv/JstlFmtTLV.java
Index: JstlFmtTLV.java
===================================================================
RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/tlv/JstlFmtTLV.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JstlFmtTLV.java 2001/12/18 01:53:15 1.1
+++ JstlFmtTLV.java 2001/12/18 04:05:54 1.2
@@ -73,8 +73,9 @@
* <ul>
* <li>Expression syntax validation, with full support for
* <jx:expressionLanguage></li>
- * <li><message> with 'messageArgs' attribute must not have any <messageArg>
- * subtags as its direct children.</li>
+ * <li>Any <message> or <messageFormat> action with a 'messageArgs'
+ * attribute must not have any <messageArg> subtags as its direct
+ * children.</li>
* <li>Tag bodies that must either be empty or non-empty given
* particular attributes.</li>
* </ul>
@@ -115,6 +116,7 @@
private final String MESSAGE = "message";
private final String MESSAGE_ARG = "messageArg";
private final String MESSAGE_FORMAT = "messageFormat";
+ private final String MESSAGE_OR_MESSAGE_FORMAT = "message(Format)";
private final String FORMAT_NUMBER = "formatNumber";
private final String PARSE_NUMBER = "parseNumber";
private final String PARSE_DATE = "parseDate";
@@ -207,21 +209,26 @@
fail(Resources.getMessage("TLV_INVALID_ATTRIBUTE",
SCOPE, qn, a.getValue(SCOPE)));
- // check invariants for <message>
+ // check invariants for <message> and <messageFormat>
if (isTag(qn, MESSAGE_ARG) && messageChild()
&& ((Boolean) messageHasMessageArgs.peek()).booleanValue()) {
/*
- * we're a <messageArg> tag and the direct child of
- * <message messageArgs="...">, which is illegal
+ * we're a <messageArg> tag and the direct child of a
+ * <message> or <messageFormat> tag with a 'messageArgs'
+ * attribute, which is illegal
*/
fail(Resources.getMessage("TLV_ILLEGAL_PARAM",
- prefix, MESSAGE_ARG, MESSAGE, MESSAGE_ARGS));
+ prefix, MESSAGE_ARG, MESSAGE_OR_MESSAGE_FORMAT,
+ MESSAGE_ARGS));
}
// now, modify state
- // if we're in a <message>, record relevant state
- if (isTag(qn, MESSAGE)) {
+ /*
+ * if we're in a <message> or <messageFormat>, record relevant
+ * state
+ */
+ if (isTag(qn, MESSAGE) || isTag(qn, MESSAGE_FORMAT)) {
messageDepths.push(new Integer(depth));
if (hasAttribute(a, MESSAGE_ARGS))
messageHasMessageArgs.push(new Boolean(true));
@@ -280,8 +287,8 @@
lastElementName));
bodyIllegal = false; // reset: we've left the tag
- // update <message>-related state
- if (isTag(qn, MESSAGE)) {
+ // update <message>- or <messageFormat>-related state
+ if (isTag(qn, MESSAGE) || isTag(qn, MESSAGE_FORMAT)) {
messageDepths.pop();
messageHasMessageArgs.pop();
}
@@ -294,7 +301,7 @@
depth--;
}
- // are we directly under a <message>
+ // are we directly under a <message> or <messageFormat>?
private boolean messageChild() {
return (!messageDepths.empty()
&& (depth - 1) == ((Integer) messageDepths.peek()).intValue());
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>