[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