package org.jboss.resource.metadata;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Locale;
import EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap;
public class ConnectorMetaData extends ConfigPropertyMetaDataContainer
{
private String version = "1.0";
private String vendorName;
private String eisType;
private String raVersion;
private String raClass;
private boolean reauthenticationSupport;
private LicenseMetaData lmd = new LicenseMetaData();
private ConcurrentReaderHashMap descriptions = new ConcurrentReaderHashMap();
private HashSet connectionDefinitions = new HashSet();
private TransactionSupportMetaData tsmd = new TransactionSupportMetaData();
private AuthenticationMechanismMetaData ammd = new AuthenticationMechanismMetaData();
private HashSet listeners = new HashSet();
private HashSet adminObjects = new HashSet();
private HashSet securityPermissions = new HashSet();
public ConnectorMetaData()
{
DescriptionGroupMetaData dmd = new DescriptionGroupMetaData();
descriptions.put(dmd.getLanguage(), dmd);
}
public String getVersion()
{
return version;
}
public void setVersion(String version)
{
this.version = version;
}
public String getVendorName()
{
return vendorName;
}
public void setVendorName(String vendorName)
{
this.vendorName = vendorName;
}
public String getEISType()
{
return eisType;
}
public void setEISType(String eisType)
{
this.eisType = eisType;
}
public String getRAVersion()
{
return raVersion;
}
public void setRAVersion(String version)
{
this.raVersion = version;
}
public String getRAClass()
{
return raClass;
}
public void setRAClass(String raClass)
{
this.raClass = raClass;
}
public boolean getReauthenticationSupport()
{
return reauthenticationSupport;
}
public void setReauthenticationSupport(boolean reauthenticationSupport)
{
this.reauthenticationSupport = reauthenticationSupport;
}
public LicenseMetaData getLicense()
{
return lmd;
}
public DescriptionGroupMetaData getDescription()
{
return (DescriptionGroupMetaData) descriptions.get(Locale.getDefault().getLanguage());
}
public DescriptionGroupMetaData getDescription(String lang)
{
return (DescriptionGroupMetaData) descriptions.get(lang);
}
public void addDescription(DescriptionGroupMetaData dmd)
{
descriptions.put(dmd.getLanguage(), dmd);
}
public TransactionSupportMetaData getTransactionSupport()
{
return tsmd;
}
public void setTransactionSupport(TransactionSupportMetaData tsmd)
{
this.tsmd = tsmd;
}
public AuthenticationMechanismMetaData getAuthenticationMechanism()
{
return ammd;
}
public void setAuthenticationMechansim(AuthenticationMechanismMetaData ammd)
{
this.ammd = ammd;
}
public void addConnectionDefinition(ConnectionDefinitionMetaData cdmd)
{
connectionDefinitions.add(cdmd);
}
public ConnectionDefinitionMetaData getConnectionDefinition(String connectionDefinition)
{
for (Iterator i = connectionDefinitions.iterator(); i.hasNext();)
{
ConnectionDefinitionMetaData cdmd = (ConnectionDefinitionMetaData) i.next();
if (cdmd.getConnectionFactoryInterfaceClass().equals(connectionDefinition))
return cdmd;
}
return null;
}
public void addMessageListener(MessageListenerMetaData mlmd)
{
listeners.add(mlmd);
}
public MessageListenerMetaData getMessageListener(String messagingType)
{
for (Iterator i = listeners.iterator(); i.hasNext();)
{
MessageListenerMetaData mlmd = (MessageListenerMetaData) i.next();
if (mlmd.getType().equals(messagingType))
return mlmd;
}
return null;
}
public void addAdminObject(AdminObjectMetaData aomd)
{
adminObjects.add(aomd);
}
public AdminObjectMetaData getAdminObject(String interfaceName)
{
for (Iterator i = adminObjects.iterator(); i.hasNext();)
{
AdminObjectMetaData aomd = (AdminObjectMetaData) i.next();
if (aomd.getAdminObjectInterfaceClass().equals(interfaceName))
return aomd;
}
return null;
}
public void addSecurityPermission(SecurityPermissionMetaData spmd)
{
securityPermissions.add(spmd);
}
public String toString()
{
StringBuffer buffer = new StringBuffer();
buffer.append("ConnectorMetaData").append('@');
buffer.append(Integer.toHexString(System.identityHashCode(this)));
buffer.append("[version=").append(version);
buffer.append(" vendorName=").append(vendorName);
buffer.append(" eisType=").append(eisType);
buffer.append(" resourceAdapterVersion=").append(raVersion);
buffer.append(" resourceAdapterClass=").append(raClass);
buffer.append(" license=").append(lmd);
buffer.append(" properties=").append(getProperties());
buffer.append(" descriptions=").append(descriptions.values());
buffer.append(" connectionDefinitions=").append(connectionDefinitions);
buffer.append(" transactionSupport=").append(tsmd);
buffer.append(" authenticationMechanism=").append(ammd);
buffer.append(" reauthenticationSupport=").append(reauthenticationSupport);
buffer.append(" messageListeners=").append(listeners);
buffer.append(" adminobjects=").append(adminObjects);
buffer.append(" securityPermissions=").append(securityPermissions);
buffer.append(']');
return buffer.toString();
}
}