[jboss-cvs] JBossAS SVN: r65965 - projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Oct 9 08:38:53 EDT 2007
Author: scott.stark at jboss.org
Date: 2007-10-09 08:38:53 -0400 (Tue, 09 Oct 2007)
New Revision: 65965
Modified:
projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec/WebResourceCollectionMetaData.java
Log:
Add getMissingHttpMethods and ALL_HTTP_METHODS utility info
Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec/WebResourceCollectionMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec/WebResourceCollectionMetaData.java 2007-10-09 12:20:00 UTC (rev 65964)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/web/spec/WebResourceCollectionMetaData.java 2007-10-09 12:38:53 UTC (rev 65965)
@@ -21,8 +21,12 @@
*/
package org.jboss.metadata.web.spec;
+import java.util.Collection;
import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
import javax.xml.bind.annotation.XmlElement;
@@ -36,9 +40,47 @@
{
private static final long serialVersionUID = 1;
- protected List<String> urlPatterns;
- protected List<String> httpMethods;
+ /** The set of all http methods: DELETE, GET, HEAD, OPTIONS, POST, PUT, TRACE */
+ public static final Set<String> ALL_HTTP_METHODS;
+ public static final String[] ALL_HTTP_METHOD_NAMES;
+ static
+ {
+ TreeSet<String> tmp = new TreeSet<String>();
+ tmp.add("GET");
+ tmp.add("POST");
+ tmp.add("PUT");
+ tmp.add("DELETE");
+ tmp.add("HEAD");
+ tmp.add("OPTIONS");
+ tmp.add("TRACE");
+ ALL_HTTP_METHODS = Collections.unmodifiableSortedSet(tmp);
+ ALL_HTTP_METHOD_NAMES = new String[ALL_HTTP_METHODS.size()];
+ ALL_HTTP_METHODS.toArray(ALL_HTTP_METHOD_NAMES);
+ }
+
+ private List<String> urlPatterns;
+ private List<String> httpMethods;
+
+ /**
+ * Get http methods in ALL_HTTP_METHODS not in the argument httpMethods.
+ * @param httpMethods a set of http method names
+ * @return possibly empty http methods in ALL_HTTP_METHODS not in
+ * httpMethods.
+ */
+ public static String[] getMissingHttpMethods(Collection<String> httpMethods)
+ {
+ String[] methods = {};
+ if( httpMethods.size() > 0 && httpMethods.containsAll(ALL_HTTP_METHODS) == false )
+ {
+ HashSet<String> missingMethods = new HashSet<String>(ALL_HTTP_METHODS);
+ missingMethods.removeAll(httpMethods);
+ methods = new String[missingMethods.size()];
+ missingMethods.toArray(methods);
+ }
+ return methods;
+ }
+
public String getWebResourceName()
{
return getName();
More information about the jboss-cvs-commits
mailing list