package org.jboss.metadata;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class AssemblyDescriptorMetaData extends MetaData
{
private HashMap securityRoles = new HashMap();
private HashMap messageDestinations = new HashMap();
public void addSecurityRoleMetaData(SecurityRoleMetaData srMetaData)
{
securityRoles.put(srMetaData.getRoleName(), srMetaData);
}
public Map getSecurityRoles()
{
return new HashMap(securityRoles);
}
public void mergeSecurityRoles(Map applRoles)
{
Iterator it = applRoles.entrySet().iterator();
while (it.hasNext())
{
Map.Entry entry = (Map.Entry) it.next();
String roleName = (String)entry.getKey();
SecurityRoleMetaData appRole = (SecurityRoleMetaData)entry.getValue();
SecurityRoleMetaData srMetaData = (SecurityRoleMetaData)securityRoles.get(roleName);
if (srMetaData != null)
{
Set principalNames = appRole.getPrincipals();
srMetaData.addPrincipalNames(principalNames);
}
else
{
securityRoles.put(roleName, entry.getValue());
}
}
}
public SecurityRoleMetaData getSecurityRoleByName(String roleName)
{
return (SecurityRoleMetaData)securityRoles.get(roleName);
}
public Set getSecurityRoleNamesByPrincipal(String userName)
{
HashSet roleNames = new HashSet();
Iterator it = securityRoles.values().iterator();
while (it.hasNext())
{
SecurityRoleMetaData srMetaData = (SecurityRoleMetaData) it.next();
if (srMetaData.getPrincipals().contains(userName))
roleNames.add(srMetaData.getRoleName());
}
return roleNames;
}
public void addMessageDestinationMetaData(MessageDestinationMetaData metaData)
{
messageDestinations.put(metaData.getName(), metaData);
}
public MessageDestinationMetaData getMessageDestinationMetaData(String name)
{
return (MessageDestinationMetaData) messageDestinations.get(name);
}
}