org.jasig.portal.groups
Class CompositeEntityIdentifier

java.lang.Object
  extended by org.jasig.portal.EntityIdentifier
      extended by org.jasig.portal.groups.CompositeEntityIdentifier
All Implemented Interfaces:
java.io.Serializable, IGroupConstants
Direct Known Subclasses:
CompositeServiceIdentifier

public class CompositeEntityIdentifier
extends EntityIdentifier
implements IGroupConstants

A composite key and type that uniquely identify a portal entity. The composite key contains a service name, which may be compound, and a native key, which is the key that identifies the entity in the local service.

Version:
$Revision: 1.8.4.1 $
Author:
Dan Ellentuck
See Also:
Serialized Form

Nested Class Summary
private  class CompositeEntityIdentifier.NameImpl
           
private  class CompositeEntityIdentifier.NameImplEnumerator
           
 
Field Summary
protected  java.lang.String cachedCompositeKey
           
protected  java.lang.String cachedLocalKey
           
protected  javax.naming.Name cachedServiceName
           
protected  javax.naming.Name compositeKey
           
protected static java.lang.String NAME_CACHE
           
private static java.util.Map nameCache
           
protected static java.lang.String separator
           
 
Fields inherited from class org.jasig.portal.EntityIdentifier
key, type
 
Fields inherited from interface org.jasig.portal.groups.IGroupConstants
CHANNEL_CATEGORIES, CONTAINS, ENDS_WITH, EVERYONE, IS, NODE_SEPARATOR, PORTAL_ADMINISTRATORS, STARTS_WITH
 
Constructor Summary
CompositeEntityIdentifier(java.lang.String entityKey, java.lang.Class entityType)
           
 
Method Summary
protected  javax.naming.Name getCompositeKey()
           
 java.lang.String getKey()
           
 java.lang.String getLocalKey()
           
protected  javax.naming.NameParser getParser()
           
 javax.naming.Name getServiceName()
          If the composite key is either empty or has a single node, there is no service name.
 javax.naming.Name newName()
          Returns a new empty Name
 javax.naming.Name parseCompoundKey(java.lang.String key)
          Returns a CompoundName parsed from key
 java.lang.String popNode()
           
 javax.naming.Name pushNode(java.lang.String newNode)
           
 void setCompositeKey(javax.naming.Name newCompositeKey)
           
 void setServiceName(javax.naming.Name newServiceName)
           
protected  int size()
           
 java.lang.String toString()
          Returns a String that represents the value of this object.
 
Methods inherited from class org.jasig.portal.EntityIdentifier
equals, getType, hashCode
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

separator

protected static java.lang.String separator

NAME_CACHE

protected static java.lang.String NAME_CACHE

nameCache

private static java.util.Map nameCache

compositeKey

protected javax.naming.Name compositeKey

cachedCompositeKey

protected java.lang.String cachedCompositeKey

cachedLocalKey

protected java.lang.String cachedLocalKey

cachedServiceName

protected javax.naming.Name cachedServiceName
Constructor Detail

CompositeEntityIdentifier

public CompositeEntityIdentifier(java.lang.String entityKey,
                                 java.lang.Class entityType)
                          throws GroupsException
Parameters:
entityKey - java.lang.String
entityType - java.lang.Class
Throws:
GroupsException
Method Detail

getCompositeKey

protected javax.naming.Name getCompositeKey()
Returns:
javax.naming.Name

getKey

public java.lang.String getKey()
Overrides:
getKey in class EntityIdentifier
Returns:
java.lang.String

getLocalKey

public java.lang.String getLocalKey()
Returns:
java.lang.String

getParser

protected javax.naming.NameParser getParser()
Returns:
javax.naming.NameParser

getServiceName

public javax.naming.Name getServiceName()
If the composite key is either empty or has a single node, there is no service name.

Returns:
javax.naming.Name

newName

public javax.naming.Name newName()
                          throws javax.naming.InvalidNameException
Returns a new empty Name

Throws:
javax.naming.InvalidNameException

popNode

public java.lang.String popNode()
                         throws javax.naming.InvalidNameException
Returns:
String - the removed component
Throws:
javax.naming.InvalidNameException

pushNode

public javax.naming.Name pushNode(java.lang.String newNode)
                           throws javax.naming.InvalidNameException
Returns:
javax.naming.Name
Throws:
javax.naming.InvalidNameException

setCompositeKey

public void setCompositeKey(javax.naming.Name newCompositeKey)
Parameters:
newCompositeKey - javax.naming.Name

setServiceName

public void setServiceName(javax.naming.Name newServiceName)
                    throws javax.naming.InvalidNameException
Parameters:
newServiceName - javax.naming.Name
Throws:
javax.naming.InvalidNameException

size

protected int size()
Returns:
int

toString

public java.lang.String toString()
Returns a String that represents the value of this object.

Overrides:
toString in class EntityIdentifier
Returns:
java.lang.String

parseCompoundKey

public javax.naming.Name parseCompoundKey(java.lang.String key)
                                   throws javax.naming.NamingException
Returns a CompoundName parsed from key

Throws:
javax.naming.NamingException