/*
* JBoss, Home of Professional Open Source
* Copyright 2007, 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.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.jboss.metadata.sip.spec;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import org.jboss.metadata.javaee.spec.RunAsMetaData;
import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
import org.jboss.metadata.javaee.support.MergeableMetaData;
import org.jboss.metadata.javaee.support.NamedMetaDataWithDescriptionGroup;
import org.jboss.xb.annotations.JBossXmlNsPrefix;
/**
* sip-app/servlet metadata
*
* @author Scott.Stark@jboss.org
* @version $Revision: 75201 $
*/
public class ServletMetaData extends
NamedMetaDataWithDescriptionGroup implements
MergeableMetaData<ServletMetaData> {
private static final long serialVersionUID = 1;
private static final int loadOnStartupDefault = -1;
private String servletName;
private String servletClass;
private String jspFile;
/** The servlet init-params */
private List<ParamValueMetaData> initParam;
private int loadOnStartup = loadOnStartupDefault;
private RunAsMetaData runAs;
/** The security role ref */
private SecurityRoleRefsMetaData securityRoleRefs;
public String getServletName() {
return servletName;
}
@XmlElement(name = "servlet-name")
@JBossXmlNsPrefix(prefix="javaee", schemaTargetIfNotMapped=true)
public void setServletName(String servletName) {
this.servletName = servletName;
super.setName(servletName);
}
public String getServletClass() {
return servletClass;
}
@XmlElement(name = "servlet-class")
@JBossXmlNsPrefix(prefix="javaee", schemaTargetIfNotMapped=true)
public void setServletClass(String servletClass) {
this.servletClass = servletClass;
}
public List<ParamValueMetaData> getInitParam() {
return initParam;
}
@XmlElement(name = "init-param")
@JBossXmlNsPrefix(prefix="javaee", schemaTargetIfNotMapped=true)
public void setInitParam(List<ParamValueMetaData> initParam) {
this.initParam = initParam;
}
public String getJspFile() {
return jspFile;
}
@XmlElement(name = "jsp-file")
@JBossXmlNsPrefix(prefix="javaee", schemaTargetIfNotMapped=true)
public void setJspFile(String jspFile) {
this.jspFile = jspFile;
}
public int getLoadOnStartup() {
return loadOnStartup;
}
@XmlElement(name = "load-on-startup")
@JBossXmlNsPrefix(prefix="javaee", schemaTargetIfNotMapped=true)
public void setLoadOnStartup(int loadOnStartup) {
this.loadOnStartup = loadOnStartup;
}
public RunAsMetaData getRunAs() {
return runAs;
}
@XmlElement(name = "run-as")
@JBossXmlNsPrefix(prefix="javaee", schemaTargetIfNotMapped=true)
public void setRunAs(RunAsMetaData runAs) {
this.runAs = runAs;
}
public SecurityRoleRefsMetaData getSecurityRoleRefs() {
return securityRoleRefs;
}
@XmlElement(name = "security-role-ref")
@JBossXmlNsPrefix(prefix="javaee", schemaTargetIfNotMapped=true)
public void setSecurityRoleRefs(SecurityRoleRefsMetaData securityRoleRefs) {
this.securityRoleRefs = securityRoleRefs;
}
public ServletMetaData merge(ServletMetaData original) {
ServletMetaData merged = new ServletMetaData();
merged.merge(this, original);
return merged;
}
public void merge(ServletMetaData override, ServletMetaData original) {
super.merge(override, original);
if (override != null && override.getServletName() != null)
setServletName(override.getServletName());
else if (original != null && original.getServletName() != null)
setServletName(original.getServletName());
if (override != null && override.getServletClass() != null)
setServletClass(override.getServletClass());
else if (original != null && original.getServletClass() != null)
setServletClass(original.getServletClass());
if (override != null && override.getJspFile() != null)
setJspFile(override.getJspFile());
else if (original != null && original.getJspFile() != null)
setJspFile(original.getJspFile());
if (override != null && override.getInitParam() != null)
setInitParam(override.getInitParam());
else if (original != null && original.getInitParam() != null)
setInitParam(original.getInitParam());
if (override != null
&& override.getLoadOnStartup() != loadOnStartupDefault)
setLoadOnStartup(override.getLoadOnStartup());
else if (original != null
&& original.getLoadOnStartup() != loadOnStartupDefault)
setLoadOnStartup(original.getLoadOnStartup());
if (override != null && override.getRunAs() != null)
setRunAs(override.getRunAs());
else if (original != null && original.getRunAs() != null)
setRunAs(original.getRunAs());
if (override != null && override.getSecurityRoleRefs() != null)
setSecurityRoleRefs(override.getSecurityRoleRefs());
else if (original != null && original.getSecurityRoleRefs() != null)
setSecurityRoleRefs(original.getSecurityRoleRefs());
}
public String toString() {
StringBuilder tmp = new StringBuilder("ServletMetaData(id=");
tmp.append(getId());
tmp.append(",servletClass=");
tmp.append(getServletClass());
tmp.append(",jspFile=");
tmp.append(getJspFile());
tmp.append(",loadOnStartup=");
tmp.append(getLoadOnStartup());
tmp.append(",runAs=");
tmp.append(getRunAs());
tmp.append(')');
return tmp.toString();
}
}