/* * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat Middleware LLC, and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * 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.jboss.shrinkwrap.descriptor.spec.web; import java.util.ArrayList; import java.util.List; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlEnum; import javax.xml.bind.annotation.XmlType; /** * @author Dan Allen */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "web-resource-collectionType", propOrder = { "name", "descriptions", "urlPatterns", "httpMethods", "httpMethodOmissions" }) public class WebResourceCollection { @XmlEnum public enum HttpMethodType { GET, POST, PUT, DELETE, OPTIONS, HEAD, TRACE; public String value() { return name(); } public static HttpMethodType fromValue(String v) { return valueOf(v); } } @XmlElement(name = "web-resource-name", required = true) protected String name; @XmlElement(name = "description") protected List<LocalizedText> descriptions; @XmlElement(name = "url-pattern", required = true) protected List<String> urlPatterns; @XmlElement(name = "http-method") protected List<HttpMethodType> httpMethods; @XmlElement(name = "http-method-omission") protected List<HttpMethodType> httpMethodOmissions; public WebResourceCollection() {} public WebResourceCollection(String name) { this.name = name; } public WebResourceCollection(String name, String[] urlPatterns, HttpMethodType... httpMethods) { this.name = name; for (String p : urlPatterns) { getUrlPatterns().add(p); } for (HttpMethodType m : httpMethods) { getHttpMethods().add(m); } } public String getName() { return name; } public void setName(String webResourceName) { this.name = webResourceName; } public List<LocalizedText> getDescriptions() { if (descriptions == null) { descriptions = new ArrayList<LocalizedText>(); } return descriptions; } public List<String> getUrlPatterns() { if (urlPatterns == null) { urlPatterns = new ArrayList<String>(); } return urlPatterns; } public List<HttpMethodType> getHttpMethods() { if (httpMethods == null) { httpMethods = new ArrayList<HttpMethodType>(); httpMethodOmissions = null; } return httpMethods; } public List<HttpMethodType> getHttpMethodOmissions() { if (httpMethodOmissions == null) { httpMethodOmissions = new ArrayList<HttpMethodType>(); httpMethods = null; } return httpMethodOmissions; } }