Class ClassMapping

java.lang.Object
com.groiss.ldap.ClassMapping

public class ClassMapping extends Object
Maps a Java Class to an LDAP Object Class. Is part of a schema mapping. Provides accessors to field values of a mapped object.
  • Constructor Details

    • ClassMapping

      public ClassMapping(SchemaMapping sm)
      Constructs a class mapping and adds it to the provided schema mapping.
      Parameters:
      sm - the schema mapping to which the schema mapping is added
  • Method Details

    • getSm

      public SchemaMapping getSm()
      Returns the schema mapping this class mapping belongs to
      Returns:
      the schema mapping this class mapping belongs to
    • add

      public void add(AttributeMapping am)
      Adds an attribute mapping to this class mapping
      Parameters:
      am - the attribute mapping to add
    • getAttMappingByAttName

      public AttributeMapping getAttMappingByAttName(String name)
      Returns the attribute mapping with the specified attribute name
      Parameters:
      name - the attribute name of the mapping to look up
      Returns:
      the attribute mapping if one is found, null otherwise
    • getAttMappingByFieldName

      public AttributeMapping getAttMappingByFieldName(String name)
      Returns the attribute mapping with the specified field name
      Parameters:
      name - the field name of the mapping to look up
      Returns:
      the attribute mapping if one is found, null otherwise
    • getAttributeIterator

      public Iterator<AttributeMapping> getAttributeIterator()
      Returns an iterator for the attribute mappings of this class mapping
      Returns:
      an iterator for the attribute mappings of this class mapping
    • getAttributeCount

      public int getAttributeCount()
      Returns the number of attribute mappings of this class mapping
      Returns:
      the number of attribute mappings of this class mapping
    • getJavaClassName

      public String getJavaClassName()
      Returns the name of the Java class this mapping is for.
      Returns:
      the name of the Java class this mapping is for.
    • setJavaClassName

      public void setJavaClassName(String javaClassName) throws Exception
      Set the class name of the java class for this mapping. Also the fields of the java class are set.
      Parameters:
      javaClassName - the class name
      Throws:
      Exception - thrown when the class is not found or cannot be instantiated
    • getFields

      public Map<String,Field> getFields()
      Returns the fields of the java class.
      Returns:
      a Map which maps fieldnames to java.lang.reflect.Field objects
    • getField

      public Field getField(String fieldName)
      Get a field by its name.
      Parameters:
      fieldName - the name of the field to get
      Returns:
      the field
    • getFieldContent

      public Object getFieldContent(Persistent o, String fieldName) throws IllegalAccessException
      Gets the content of an objects field by the fields name. The object must be an instance of the java class specified for this class mapping.
      Parameters:
      o - The object which field content should be gotten.
      fieldName - the name of the field
      Returns:
      the content of the objects field.
      Throws:
      IllegalAccessException
    • addSubLink

      public void addSubLink(SubLink subLink)
      Add a sublink to this class mapping
      Parameters:
      subLink - the sublink to add
    • getSubLinks

      public List<SubLink> getSubLinks()
      Returns the sublinks of this class mapping
      Returns:
      an arrayList of SubLink objects of this class mapping
    • setObjectClasses

      public void setObjectClasses(String[] objectClasses)
      Set the names of the LDAP Object classes for this class mapping. Must be ordered from least specific to most specific class. e.g. "top","person","organizationalPerson"
      Parameters:
      objectClasses -
    • getObjectClasses

      public String[] getObjectClasses()
      Return the set of LDAP object classes for this mapping
      Returns:
      the names of the LDAP object classes this mapping is for
    • getObjectClass

      public String getObjectClass()
      Returns the name of the most specific LDAP Object class
      Returns:
      the name of the most specific LDAP Object class
    • setRDNAttName

      public void setRDNAttName(String rDNAttName)
      Set the name of the LDAP attribute which designates the relative distinguished name (RDN)
      Parameters:
      rDNAttName - the name of the attribute whose value is the RDN
    • getRDNAttName

      public String getRDNAttName()
      Returns the name of the LDAP attribute which designates the relative distinguished name (RDN)
      Returns:
      the name of the LDAP attribute which designates the relative distinguished name (RDN)
    • getRDNAttValue

      public Object getRDNAttValue(Persistent o) throws Exception
      Returns the value of the RDN of an object
      Parameters:
      o - the object to get the value from. Must be an instance of the java class of this class mapping
      Returns:
      the value of the RDN of the object
      Throws:
      Exception
    • setClassSubContext

      public void setClassSubContext(String classSubContext)
      Set the sub context for this class mapping. e.g. "ou=People"
      Parameters:
      classSubContext - the RDN of the context for this class mapping
    • getClassSubContext

      public String getClassSubContext()
      Returns the RDN of the subcontext of this class mapping
      Returns:
      the RDN of the subcontext of this class mapping
    • getClassSubContextAtt

      public String getClassSubContextAtt()
      Returns the name of the LDAP attribute which designates the subcontext
      Returns:
      the name of the LDAP attribute which designates the subcontext
    • getClassSubContextVal

      public String getClassSubContextVal()
      Returns the value of the LDAP attribute which designates the subcontext
      Returns:
      the value of the LDAP attribute which designates the subcontext