com.ca.jcs.meta
Class MetaObjectClassMappings

java.lang.Object
  extended by com.ca.jcs.meta.MetaObjectClassMappings

public class MetaObjectClassMappings
extends Object

Container for internalised information derived from the DataModel stored with a MetaConnectorType. In most cases the instance of this class stored by a MetaConnector will be the exact instance stored by its parent MetaConnectorType. However, when there are one more ConnectorDependantAttributeConverter registered against DataModel properties, then this information in this class must be cloned and configured specially for each concrete MetaConnector so that the connectors can be wrapped up as tidy functors ready to be executed without requiring further arguments to be provided to each conversion call.


Constructor Summary
MetaObjectClassMappings(boolean caseSensitive)
           
 
Method Summary
 MetaObjectClassMapping getAccountClassMap()
           
 Collection<MetaObjectClassMapping> getAllClassMappings()
           
 MetaObjectClassMapping getClassMapFromAlias(String alias)
          Look up mapping of alias to LDAP object class.
 MetaObjectClassMapping getClassMapFromConnectorName(String connClass)
          Look up mapping for LDAP object class, after normalising its case.
 MetaObjectClassMapping getClassMapFromConnectorNamingAttrId(String connNamingAttr)
           
 MetaObjectClassMapping getClassMapFromLdapName(String ldapClass)
          Look up mapping for LDAP object class, after normalising it.
 MetaObjectClassMapping getClassMapFromLdapNamingAttrId(String ldapNamingAttr)
           
 List<MetaObjectClassMapping> getClassMapsFromLdapAttrId(String ldapAttrId)
          Returns any class mappings in getLdapClassMappings() which mention ldapAttrId.
 Collection<String> getClassNames()
           
 MetaObjectClassMapping getConnectorClassMap()
           
 Set<MetaObjectClassMapping> getConnectorNamingAttrClassMapsConflicted()
           
 HashMap<String,List<MetaObjectClassMapping>> getConnectorNamingAttrToClassMappingConflicted()
           
 ExprNode getConnectorNullFilter()
          Returns equivalent filter to (objectclass=*) on managed system, given all class names which are known to be mapped on the connector-side.
 boolean getHasConnectorDependantConverter()
          At least one contained converter (in classmaps properties) implements ConnectorDependantAttributeConverter.
 Collection<MetaObjectClassMapping> getLdapClassMappings()
           
 Collection<String> getLdapClassNames()
          Return names for all contained objectClasses visible via LDAP.
 HashMap<String,Set<MetaObjectClassMapping>> getLdapClassNameToChildTypes()
          Calculates containment information for each class via childTypes at each containment level
 Set<MetaObjectClassMapping> getNestedChildTypes(MetaObjectClassMapping classMap, boolean nestedChildTypes)
          Traverse childTypes for the given class and all nested childTypes in its child classes to come up with a set of all matching classMaps
 Set<MetaObjectClassMapping> getNestedChildTypes(String ldapClassName, List<String> childTypes, boolean nestedChildTypes)
           
 MetaObjectClassMapping getSingleMapping()
           
 String getUnresolvableConnNamingAttrIds()
           
 String getUnresolvableConnObjClasses()
           
 boolean isCaseSensitive()
           
 boolean isConnectorNamingAttrIdClash()
           
 void putClassMapFromAlias(String alias, MetaObjectClassMapping mapping)
          Store mapping of alias to an LDAP object class.
 void putClassMapFromConnectorName(String connClass, MetaObjectClassMapping classMap)
          Store classMap for connector-speak object class, after normalising it.
 void putClassMapFromConnectorNamingAttrId(String connNamingAttr, MetaObjectClassMapping classMap)
           
 void putClassMapFromLdapName(String ldapClass, MetaObjectClassMapping mapping)
          Store mapping for LDAP object class, after normalising it.
 void putClassMapFromLdapNamingAttrId(String ldapNamingAttr, MetaObjectClassMapping classMap)
           
 void setAccountClassMap(MetaObjectClassMapping accountClassMap)
           
 void setConnectorClassMap(MetaObjectClassMapping connectorClassMap)
           
 void setLdapClassNames(Collection<String> allClassNames)
          For internal use only, sometimes need to add extra name, eg for virtual containers.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MetaObjectClassMappings

public MetaObjectClassMappings(boolean caseSensitive)
Method Detail

isCaseSensitive

public boolean isCaseSensitive()

getConnectorClassMap

public MetaObjectClassMapping getConnectorClassMap()

setConnectorClassMap

public void setConnectorClassMap(MetaObjectClassMapping connectorClassMap)

getAccountClassMap

public MetaObjectClassMapping getAccountClassMap()

setAccountClassMap

public void setAccountClassMap(MetaObjectClassMapping accountClassMap)

getHasConnectorDependantConverter

public boolean getHasConnectorDependantConverter()
At least one contained converter (in classmaps properties) implements ConnectorDependantAttributeConverter.


getClassMapFromLdapNamingAttrId

public MetaObjectClassMapping getClassMapFromLdapNamingAttrId(String ldapNamingAttr)

putClassMapFromLdapNamingAttrId

public void putClassMapFromLdapNamingAttrId(String ldapNamingAttr,
                                            MetaObjectClassMapping classMap)

getClassMapFromConnectorNamingAttrId

public MetaObjectClassMapping getClassMapFromConnectorNamingAttrId(String connNamingAttr)

isConnectorNamingAttrIdClash

public boolean isConnectorNamingAttrIdClash()

putClassMapFromConnectorNamingAttrId

public void putClassMapFromConnectorNamingAttrId(String connNamingAttr,
                                                 MetaObjectClassMapping classMap)

getClassMapFromLdapName

public MetaObjectClassMapping getClassMapFromLdapName(String ldapClass)
Look up mapping for LDAP object class, after normalising it.


getClassMapsFromLdapAttrId

public List<MetaObjectClassMapping> getClassMapsFromLdapAttrId(String ldapAttrId)
Returns any class mappings in getLdapClassMappings() which mention ldapAttrId.


putClassMapFromLdapName

public void putClassMapFromLdapName(String ldapClass,
                                    MetaObjectClassMapping mapping)
Store mapping for LDAP object class, after normalising it.


getClassMapFromConnectorName

public MetaObjectClassMapping getClassMapFromConnectorName(String connClass)
Look up mapping for LDAP object class, after normalising its case.


putClassMapFromConnectorName

public void putClassMapFromConnectorName(String connClass,
                                         MetaObjectClassMapping classMap)
Store classMap for connector-speak object class, after normalising it.


putClassMapFromAlias

public void putClassMapFromAlias(String alias,
                                 MetaObjectClassMapping mapping)
Store mapping of alias to an LDAP object class.


getClassMapFromAlias

public MetaObjectClassMapping getClassMapFromAlias(String alias)
Look up mapping of alias to LDAP object class.


setLdapClassNames

public void setLdapClassNames(Collection<String> allClassNames)
For internal use only, sometimes need to add extra name, eg for virtual containers.


getLdapClassNames

public Collection<String> getLdapClassNames()
Return names for all contained objectClasses visible via LDAP. Note that some extra virtual names may occur in this list which don't have corresponding class mappings in getLdapClassMappings(), for cases like virtual containers etc which still need to take part in the filter scanning done by ObjectClassVisitor.

Returns:
All names (including virtual ones).

getConnectorNullFilter

public ExprNode getConnectorNullFilter()
Returns equivalent filter to (objectclass=*) on managed system, given all class names which are known to be mapped on the connector-side.


getUnresolvableConnObjClasses

public String getUnresolvableConnObjClasses()
Returns:
Message describing all connector-speak objectclass names that can not be resolved to equivalent LDAP objectclass names because of clashes, or null if no clashes exist.

getUnresolvableConnNamingAttrIds

public String getUnresolvableConnNamingAttrIds()
Returns:
Message describing all connector-speak naming attribute ids that can not be resolved to their owning LDAP objectclass names because of clashes, or null if no clashes exist.

getAllClassMappings

public Collection<MetaObjectClassMapping> getAllClassMappings()
Returns:
Collection of all MetaObjectClassMappings defined in this type's current metadata (including classes not visible directly from LDAP such as compound value classes).

getLdapClassMappings

public Collection<MetaObjectClassMapping> getLdapClassMappings()
Returns:
Collection of all MetaObjectClassMappings defined in this type's current metadata which are visible as top-level classes via LDAP, eg excluding compound value classes).

getSingleMapping

public MetaObjectClassMapping getSingleMapping()
Returns:
Single contained mapping is there is only one, otherwise fails assertion.

getConnectorNamingAttrToClassMappingConflicted

public HashMap<String,List<MetaObjectClassMapping>> getConnectorNamingAttrToClassMappingConflicted()
Returns:
clashing classMaps for naming attribute information

getConnectorNamingAttrClassMapsConflicted

public Set<MetaObjectClassMapping> getConnectorNamingAttrClassMapsConflicted()
Returns:
all clashing classMaps regardless of which naming attribute they clashed on

getNestedChildTypes

public Set<MetaObjectClassMapping> getNestedChildTypes(MetaObjectClassMapping classMap,
                                                       boolean nestedChildTypes)
Traverse childTypes for the given class and all nested childTypes in its child classes to come up with a set of all matching classMaps

Parameters:
classMap -
Returns:

getNestedChildTypes

public Set<MetaObjectClassMapping> getNestedChildTypes(String ldapClassName,
                                                       List<String> childTypes,
                                                       boolean nestedChildTypes)

getLdapClassNameToChildTypes

@NotNull
public HashMap<String,Set<MetaObjectClassMapping>> getLdapClassNameToChildTypes()
Calculates containment information for each class via childTypes at each containment level

Returns:
Map indexed via LDAP class name containing a list of all childType class mappings

getClassNames

public Collection<String> getClassNames()


Created 2011-07-14 13:27 EST