package org.mobicents.slee.container.component.deployment.jaxb.descriptors;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.slee.ComponentID;
import javax.slee.management.DeploymentException;
import javax.slee.resource.ResourceAdaptorID;
import org.mobicents.slee.container.component.deployment.jaxb.descriptors.common.MSecurityPermissions;
import org.mobicents.slee.container.component.deployment.jaxb.descriptors.common.MUsageParametersInterface;
import org.mobicents.slee.container.component.deployment.jaxb.descriptors.common.references.MLibraryRef;
import org.mobicents.slee.container.component.deployment.jaxb.descriptors.common.references.MProfileSpecRef;
import org.mobicents.slee.container.component.deployment.jaxb.descriptors.common.references.MResourceAdaptorTypeRef;
import org.mobicents.slee.container.component.deployment.jaxb.descriptors.ra.MConfigProperty;
import org.mobicents.slee.container.component.deployment.jaxb.descriptors.ra.MResourceAdaptor;
import org.mobicents.slee.container.component.deployment.jaxb.descriptors.ra.MResourceAdaptorClass;
import org.mobicents.slee.container.component.deployment.jaxb.descriptors.ra.MResourceAdaptorClasses;
/**
*
* ResourceAdaptorDescriptorImpl.java
*
* <br>
* Project: mobicents <br>
* 4:55:40 PM Jan 29, 2009 <br>
*
* @author <a href="mailto:brainslog@gmail.com"> Alexandre Mendonca </a>
* @author <a href="mailto:baranowb@gmail.com"> Bartosz Baranowski </a>
*/
public class ResourceAdaptorDescriptorImpl {
private ResourceAdaptorID resourceAdaptorID;
private String description;
private List<MLibraryRef> libraryRefs;
private List<MProfileSpecRef> profileSpecRefs;
private List<MResourceAdaptorTypeRef> resourceAdaptorTypeRefs;
private List<MConfigProperty> configProperties;
private boolean ignoreRaTypeEventTypeCheck;
private MUsageParametersInterface resourceAdaptorUsageParametersInterface;
private String resourceAdaptorClassName;
private boolean supportsActiveReconfiguration;
private MSecurityPermissions securityPermissions;
private boolean isSlee11;
private Set<ComponentID> dependenciesSet = new HashSet<ComponentID>();
public ResourceAdaptorDescriptorImpl( MResourceAdaptor resourceAdaptor, MSecurityPermissions securityPermissions, boolean isSlee11 ) throws DeploymentException
{
this.description = resourceAdaptor.getDescription();
this.resourceAdaptorID = new ResourceAdaptorID(resourceAdaptor.getResourceAdaptorName(), resourceAdaptor.getResourceAdaptorVendor(), resourceAdaptor.getResourceAdaptorVersion());
this.libraryRefs = resourceAdaptor.getLibraryRef();
this.resourceAdaptorTypeRefs = resourceAdaptor.getResourceAdaptorTypeRefs();
this.profileSpecRefs = resourceAdaptor.getProfileSpecRef();
this.configProperties = resourceAdaptor.getConfigProperty();
this.ignoreRaTypeEventTypeCheck = resourceAdaptor.getIgnoreRaTypeEventTypeCheck();
MResourceAdaptorClasses raClasses = resourceAdaptor.getResourceAdaptorClasses();
MResourceAdaptorClass raClass = raClasses.getResourceAdaptorClass();
this.resourceAdaptorUsageParametersInterface = raClasses.getResourceAdaptorUsageParametersInterface();
this.resourceAdaptorClassName = raClass.getResourceAdaptorClassName();
this.supportsActiveReconfiguration = raClass.getSupportsActiveReconfiguration();
this.securityPermissions = securityPermissions;
this.isSlee11 = isSlee11;
buildDependenciesSet();
}
private void buildDependenciesSet()
{
for(MResourceAdaptorTypeRef resourceAdaptorTypeRef : resourceAdaptorTypeRefs)
{
this.dependenciesSet.add( resourceAdaptorTypeRef.getComponentID() );
}
for(MProfileSpecRef profileSpecRef : profileSpecRefs)
{
this.dependenciesSet.add( profileSpecRef.getComponentID() );
}
for(MLibraryRef libraryRef : libraryRefs)
{
this.dependenciesSet.add( libraryRef.getComponentID() );
}
}
public String getDescription() {
return description;
}
public List<MLibraryRef> getLibraryRefs() {
return libraryRefs;
}
public List<MResourceAdaptorTypeRef> getResourceAdaptorTypeRefs() {
return resourceAdaptorTypeRefs;
}
public List<MProfileSpecRef> getProfileSpecRefs() {
return profileSpecRefs;
}
public List<MConfigProperty> getConfigProperties() {
return configProperties;
}
public boolean getIgnoreRaTypeEventTypeCheck() {
return ignoreRaTypeEventTypeCheck;
}
public MUsageParametersInterface getResourceAdaptorUsageParametersInterface() {
return resourceAdaptorUsageParametersInterface;
}
public String getResourceAdaptorClassName() {
return resourceAdaptorClassName;
}
public boolean getSupportsActiveReconfiguration() {
return supportsActiveReconfiguration;
}
public ResourceAdaptorID getResourceAdaptorID() {
return resourceAdaptorID;
}
public Set<ComponentID> getDependenciesSet() {
return this.dependenciesSet;
}
public MSecurityPermissions getSecurityPermissions()
{
return securityPermissions;
}
public boolean isSlee11()
{
return isSlee11;
}
}