[prev in list] [next in list] [prev in thread] [next in thread]
List: woden-dev
Subject: svn commit: r348940 -
From: jkaputin () apache ! org
Date: 2005-11-25 13:13:39
Message-ID: 20051125131340.48292.qmail () minotaur ! apache ! org
[Download RAW message or body]
Author: jkaputin
Date: Fri Nov 25 05:13:34 2005
New Revision: 348940
URL: http://svn.apache.org/viewcvs?rev=348940&view=rev
Log:
Added more support to MessageLabel for handling
invalid values, including a boolean isValid() and
overriding equals() to compare contents rather than
object refs for invalid MessageStrings
Modified:
incubator/woden/java/src/org/apache/woden/wsdl20/enum/MessageLabel.java
Modified: incubator/woden/java/src/org/apache/woden/wsdl20/enum/MessageLabel.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/wsdl20/enum/MessageLabel.java?rev=348940&r1=348939&r2=348940&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/wsdl20/enum/MessageLabel.java \
(original)
+++ incubator/woden/java/src/org/apache/woden/wsdl20/enum/MessageLabel.java Fri Nov \
25 05:13:34 2005 @@ -15,6 +15,7 @@
*/
package org.apache.woden.wsdl20.enum;
+
/**
* This class defines the values of the {message label} property of
* InterfaceMessageReference and InterfaceFaultReference. This property
@@ -38,29 +39,68 @@
* msgRef.setMessageLabel(MessageLabel.IN);
* if(msgRef.getMessageLabel() == MessageLabel.IN) ...
* if(msgRef.getMessageLabel().equals(MessageLabel.IN)) ...
- *
- * Note that == and .equals() are equivalent.
* </pre>
- * If a messageLabel attribute in the WSDL specifies an invalid value
- * (i.e. not "In" or "Out"), it may still be useful to capture this value
- * for reporting purposes. Implementations can capture this value in a
- * MessagaLabel object by using the public static method \
<tt>invalidValue(String)</tt>
- * and can retrieve it using the <tt>toString()</tt> method.
+ * Valid MessageLabels are Singletons, so <tt>==</tt> and <tt>.equals</tt> are \
gauranteed + * to return the same result.
+ * <p>
+ * If a <tt>messageLabel</tt> attribute in the WSDL specifies an invalid value
+ * (i.e. not represented by a constant), it may still be useful to capture this
+ * value for reporting purposes. Use the public static method \
<tt>invalidValue(String)</tt> + * for this purpose.
+ * Invalid MessageLabels are not Singletons, so <tt>.equals</tt> is overridden to \
compare + * string contents for invalid MessageLabels and <tt>==</tt> is not \
gauranteed to return the same + * result as <tt>.equals</tt>.
* <p>
+ * TODO consider using a singleton map of invalid MessageLabels keyed by intern() \
strings + * so that '==' and '.equals' will return the same result, as they do for \
valid MessageLabels + * (i.e. remove the .equals() override and use object refs \
instead). + * <p>
* TODO if extensibility is required, chg ctor to protected
+ * <p>
+ * TODO confirm that 'isValid()' is needed as a public method on the API
*
* @author jkaputin@apache.org
*/
public class MessageLabel
{
+ public static final MessageLabel IN = new MessageLabel("In");
+ public static final MessageLabel OUT = new MessageLabel("Out");
+
+ public static final MessageLabel invalidValue(String value) {
+ return new MessageLabel(value.intern(), false);
+ }
+
private final String fValue;
- private MessageLabel(String value) { fValue = value; }
+ private boolean fValid = true;
+
+ private MessageLabel(String value) {
+ this(value, true);
+ }
+
+ private MessageLabel(String value, boolean valid) {
+ fValue = value;
+ fValid = valid;
+ }
+
public String toString() {return fValue;}
+ public boolean isValid() {return fValid;}
- public static final MessageLabel invalidValue(String value) {
- return new MessageLabel(value);
+ public boolean equals(MessageLabel other)
+ {
+ if(fValid)
+ {
+ //valid MessageLabel is Singleton, so compare object refs
+ return this == other;
+ }
+ else
+ {
+ //invalid MessageLabel is not Singleton, so compare contents
+ if(other != null) {
+ return this.fValue == other.toString();
+ } else {
+ return false;
+ }
+ }
}
- public static final MessageLabel IN = new MessageLabel("In");
- public static final MessageLabel OUT = new MessageLabel("Out");
}
---------------------------------------------------------------------
To unsubscribe, e-mail: woden-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: woden-dev-help@ws.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic