/*
* JBoss, Home of Professional Open Source
* Copyright 2010, Red Hat Inc., and individual contributors as indicated
* 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.as.web.common;
import java.io.File;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.jboss.as.server.deployment.AttachmentKey;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
import org.jboss.metadata.web.spec.WebFragmentMetaData;
import org.jboss.metadata.web.spec.WebMetaData;
import org.jboss.msc.service.ServiceName;
import org.jboss.vfs.VirtualFile;
/**
* @author Remy Maucherat
*/
public class WarMetaData {
public static final AttachmentKey<WarMetaData> ATTACHMENT_KEY = AttachmentKey.create(WarMetaData.class);
/**
* jboss-web.xml metadata.
*/
private volatile JBossWebMetaData jbossWebMetaData;
/**
* Main web.xml metadata.
*/
private volatile WebMetaData webMetaData;
/**
* Web fragments metadata.
*/
private volatile Map<String, WebFragmentMetaData> webFragmentsMetaData;
/**
* Annotations metadata.
*/
private volatile Map<String, WebMetaData> annotationsMetaData;
/**
* additional module annotations metadata.
*/
private volatile List<WebMetaData> additionalModuleAnnotationsMetadata;
/**
* Order.
*/
private volatile List<String> order;
/**
* No order flag.
*/
private volatile boolean noOrder = false;
/**
* Overlays.
*/
private volatile Set<VirtualFile> overlays;
/**
* SCIs.
*/
private volatile Map<String, VirtualFile> scis;
/**
* Final merged metadata.
*/
private volatile JBossWebMetaData mergedJBossWebMetaData;
private File tempDir;
private final Set<ServiceName> additionalDependencies = new HashSet<ServiceName>();
public JBossWebMetaData getJBossWebMetaData() {
return jbossWebMetaData;
}
public void setJBossWebMetaData(JBossWebMetaData jbossWebMetaData) {
this.jbossWebMetaData = jbossWebMetaData;
}
public WebMetaData getWebMetaData() {
return webMetaData;
}
public void setWebMetaData(WebMetaData webMetaData) {
this.webMetaData = webMetaData;
}
public Map<String, WebFragmentMetaData> getWebFragmentsMetaData() {
return webFragmentsMetaData;
}
public void setWebFragmentsMetaData(Map<String, WebFragmentMetaData> webFragmentsMetaData) {
this.webFragmentsMetaData = webFragmentsMetaData;
}
public Map<String, WebMetaData> getAnnotationsMetaData() {
return annotationsMetaData;
}
public void setAnnotationsMetaData(Map<String, WebMetaData> annotationsMetaData) {
this.annotationsMetaData = annotationsMetaData;
}
public List<String> getOrder() {
return order;
}
public void setOrder(List<String> order) {
this.order = order;
}
public boolean isNoOrder() {
return noOrder;
}
public void setNoOrder(boolean noOrder) {
this.noOrder = noOrder;
}
public Set<VirtualFile> getOverlays() {
return overlays;
}
public void setOverlays(Set<VirtualFile> overlays) {
this.overlays = overlays;
}
public Map<String, VirtualFile> getScis() {
return scis;
}
public void setScis(Map<String, VirtualFile> scis) {
this.scis = scis;
}
public JBossWebMetaData getMergedJBossWebMetaData() {
return mergedJBossWebMetaData;
}
public void setMergedJBossWebMetaData(JBossWebMetaData mergedJBossWebMetaData) {
this.mergedJBossWebMetaData = mergedJBossWebMetaData;
}
public List<WebMetaData> getAdditionalModuleAnnotationsMetadata() {
return additionalModuleAnnotationsMetadata;
}
public void setAdditionalModuleAnnotationsMetadata(List<WebMetaData> additionalModuleAnnotationsMetadata) {
this.additionalModuleAnnotationsMetadata = additionalModuleAnnotationsMetadata;
}
public void addAdditionalDependency(final ServiceName serviceName) {
this.additionalDependencies.add(serviceName);
}
public Set<ServiceName> getAdditionalDependencies() {
return Collections.unmodifiableSet(additionalDependencies);
}
public File getTempDir() {
return tempDir;
}
public void setTempDir(File tempDir) {
this.tempDir = tempDir;
}
}