com.waveset.object
Class ResourceAccount

java.lang.Object
  extended bycom.waveset.object.PersistentObject
      extended bycom.waveset.object.ResourceAccount
All Implemented Interfaces:
java.lang.Comparable, javax.naming.Referenceable, XmlObject

public class ResourceAccount
extends PersistentObject


Nested Class Summary
 
Nested classes inherited from class com.waveset.object.PersistentObject
PersistentObject.Comparator, PersistentObject.InitialInstance
 
Field Summary
static java.lang.String code_id
           
static java.lang.String EL_CURRENT_ATTRIBUTES
           
static java.lang.String EL_POTENTIAL_OWNERS
           
static java.lang.String EL_PREVIOUS_ATTRIBUTES
           
static java.lang.String OWNER_UNKNOWN
          If Attribute.OWNER has this value, the resource account is not owned by any Lighthouse user.
 
Fields inherited from class com.waveset.object.PersistentObject
_trace, trace
 
Constructor Summary
  ResourceAccount(org.w3c.dom.Element e)
           
  ResourceAccount(Resource r, java.lang.String accountId)
           
  ResourceAccount(Resource r, java.lang.String accountId, java.util.Map attributes)
           
  ResourceAccount(java.lang.String xml)
           
protected ResourceAccount(java.lang.String resourceId, java.lang.String accountId)
          Repository needs this, or a no-arg constructor plus a string setter for resource id.
 
Method Summary
 boolean addPotentialOwner(WSUser user)
          Add the specified user to the list of potential owners (if not already among the list).
 boolean addPotentialOwners(java.util.List users)
          Add each specified user to the list of potential owners (if that user is not already in the list).
protected  void addSubclassAttributes(java.lang.StringBuffer b)
          Each concrete subclass may append to the buffer an XML representation of any fields it adds to PersistentObject (if those field values must persist).
protected  void addSubclassElements(java.lang.StringBuffer b)
          Each concrete subclass may append to the buffer an XML representation of any fields it adds to PersistentObject (if those field values must persist).
 boolean equals(java.lang.Object o)
          Compares two objects for equality of identity.
static AttributeCondition[] forResource(Resource r)
           
 java.lang.String getAccountId()
           
protected  WSAttribute getAttributeValues(java.lang.String attrName)
           
 java.util.Map getCurrentAttributes()
           
static java.lang.String getName(Resource r, java.lang.String accountId)
           
static java.lang.String getName(java.lang.String resourceId, java.lang.String accountId)
           
 java.lang.String getOwner()
           
 java.lang.String getOwnerName()
           
 java.util.List getPotentialOwners()
           
 java.util.Map getPreviousAttributes()
          In order to perform attribute-level reconciliation (i.e., in order to detect changes in the values of change-controlled attributes of user resource accounts), we must keep the attribute values as of the last reconciliation.
 java.lang.String getResourceId()
           
 Account.Situation getSituation()
           
 Type getType()
          Return the type of this object.
 boolean getUnowned()
           
 java.util.List listQueryableAttributes()
           
 java.util.List listSummaryAttributes()
          Returns the complete list of defined attributes that this type of persistent object exposes as summary attributes (regardless of whether this particular object has a value for each).
static void main(java.lang.String[] args)
           
protected  void parseSubclassAttributes(org.w3c.dom.Element e)
          Each concrete subclass should parse from the XML buffer any persisted subclass-specific fields (generally, the same ones that it writes into the buffer).
protected  void parseSubclassElements(org.w3c.dom.Element e)
          Each concrete subclass should parse from the XML buffer any persisted subclass-specific elements (generally, the same ones that it writes into the buffer).
 void setCurrentAttributes(java.util.Map attributeMap)
           
 void setOwner(WSUser user)
          Specify the Lighthouse user who owns this account.
protected  void setOwnerId(java.lang.String ownerId)
           
protected  void setOwnerName(java.lang.String name)
           
 void setPotentialOwners(java.util.List list)
          Specify the repository id of a Lighthouse user who might own (or become the owner of) this resource account.
 void setPreviousAttributes(java.util.Map attributeMap)
           
 void setSituation(Account.Situation s)
           
 void setSituation(java.lang.String s)
           
 void setUnowned(boolean b)
          Mark this resource account as having no owner known to Lighthouse.
 java.lang.String toString()
           
static AttributeCondition[] unownedOnResource(Resource r)
           
 
Methods inherited from class com.waveset.object.PersistentObject
addCommonElements, addEndTag, addMemberObjectGroup, addMemberObjectGroup, addPersistentAttributes, addStartTag, addSummaryAttributes, addXmlHeader, attributesMatch, attributesMatch, attributesMatch, checkReference, checkReferences, clearId, cloneAs, cloneObject, compareTo, create, create, create, create, createLastModItem, createLastModItem, createLastModItemList, directObjectGroupMember, dump, dumpFile, fakeId, getAttribute, getAttributeValues, getAuthReferences, getAuthType, getBasicAttributes, getBasicAttributes, getBasicAttributes, getCache, getCounterValue, getCreateDate, getCreator, getDisplayableName, getDisplayName, getElementName, getEncryptedValues, getId, getIdOrName, getInitialInstances, getLastMod, getLastModDate, getLastModifier, getLastModItemId, getLockInfo, getMemberObjectGroupRefs, getMemberObjectGroupRefsUpTo, getMemberObjectGroups, getName, getNameOrId, getProperties, getProperty, getPropertyAsString, getPropertyList, getQueryableAttributes, getReference, getReferences, getRuleDrivenMemberObjectGroupRefs, getRuleDrivenMemberObjectGroupRefsUpTo, getRuleDrivenMemberObjectGroups, getSubtype, getSummaryAttributes, getSummaryString, hasEncryptedData, hashCode, identityEquals, isAlias, isHidden, isId, isProtected, isProtectedFromDelete, isReferencedIn, listOperationalAttributes, listQueryableReferenceAttributes, objectGroupMember, objectGroupMemberRef, parseCommonElement, parseCommonElements, parsePersistentAttributes, parseXml, parseXml, prepareForSerialization, prepareToSerialize, println, reEncrypt, reEncryptSubclassAttributes, removeMemberObjectGroup, removeProperty, resolve, resolve, resolve, resolveArray, resolveArrayByFetching, resolveObjectReference, resolveObjectReferences, resolveReference, resolveSummaryAttributes, resolveSummaryAttributes, ruleDrivenObjectGroupMemberRef, setAuthType, setAuthType, setCache, setCreateDate, setCreator, setDisplayName, setDisplayName, setHidden, setIsAlias, setLastMod, setLastMod, setLastModDate, setLastModifier, setMemberObjectGroupRef, setMemberObjectGroupRefs, setMemberObjectGroups, setName, setProperties, setProperty, setPropertyList, setProtected, setProtectedFromDelete, setRuleDrivenMembersCache, setSubtype, setTrace, toXml, toXml, toXml, toXmlFile, visit
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

code_id

public static final java.lang.String code_id
See Also:
Constant Field Values

OWNER_UNKNOWN

public static final java.lang.String OWNER_UNKNOWN
If Attribute.OWNER has this value, the resource account is not owned by any Lighthouse user.

See Also:
Constant Field Values

EL_POTENTIAL_OWNERS

public static final java.lang.String EL_POTENTIAL_OWNERS
See Also:
Constant Field Values

EL_CURRENT_ATTRIBUTES

public static final java.lang.String EL_CURRENT_ATTRIBUTES
See Also:
Constant Field Values

EL_PREVIOUS_ATTRIBUTES

public static final java.lang.String EL_PREVIOUS_ATTRIBUTES
See Also:
Constant Field Values
Constructor Detail

ResourceAccount

public ResourceAccount(Resource r,
                       java.lang.String accountId)

ResourceAccount

public ResourceAccount(Resource r,
                       java.lang.String accountId,
                       java.util.Map attributes)

ResourceAccount

public ResourceAccount(java.lang.String xml)
                throws WavesetException

ResourceAccount

public ResourceAccount(org.w3c.dom.Element e)
                throws WavesetException

ResourceAccount

protected ResourceAccount(java.lang.String resourceId,
                          java.lang.String accountId)
Repository needs this, or a no-arg constructor plus a string setter for resource id.

Method Detail

getOwner

public java.lang.String getOwner()
Returns:
the repository id of the Lighthouse user who owns this account.

setOwner

public void setOwner(WSUser user)
              throws InvalidArgument
Specify the Lighthouse user who owns this account.

Throws:
InvalidArgument

setOwnerId

protected void setOwnerId(java.lang.String ownerId)

getOwnerName

public java.lang.String getOwnerName()

setOwnerName

protected void setOwnerName(java.lang.String name)

getUnowned

public boolean getUnowned()
Returns:
true if this resource account has no owner known to Lighthouse.

setUnowned

public void setUnowned(boolean b)
Mark this resource account as having no owner known to Lighthouse.


getPotentialOwners

public java.util.List getPotentialOwners()
Returns:
the repository id of each Lighthouse users who might own (or become the owner of) this resource account. Used by account reconciliation.

setPotentialOwners

public void setPotentialOwners(java.util.List list)
Specify the repository id of a Lighthouse user who might own (or become the owner of) this resource account. Used by account reconciliation.


addPotentialOwner

public boolean addPotentialOwner(WSUser user)
                          throws WavesetException
Add the specified user to the list of potential owners (if not already among the list).

Returns:
true if the user was actually added.
Throws:
WavesetException

addPotentialOwners

public boolean addPotentialOwners(java.util.List users)
                           throws WavesetException
Add each specified user to the list of potential owners (if that user is not already in the list).

Returns:
true if any user was actually added.
Throws:
WavesetException

getSituation

public Account.Situation getSituation()

setSituation

public void setSituation(Account.Situation s)

setSituation

public void setSituation(java.lang.String s)

getCurrentAttributes

public java.util.Map getCurrentAttributes()

setCurrentAttributes

public void setCurrentAttributes(java.util.Map attributeMap)

getPreviousAttributes

public java.util.Map getPreviousAttributes()
In order to perform attribute-level reconciliation (i.e., in order to detect changes in the values of change-controlled attributes of user resource accounts), we must keep the attribute values as of the last reconciliation.


setPreviousAttributes

public void setPreviousAttributes(java.util.Map attributeMap)

getName

public static java.lang.String getName(Resource r,
                                       java.lang.String accountId)
Returns:
a generated name for the stored ResourceAccount object.

getName

public static java.lang.String getName(java.lang.String resourceId,
                                       java.lang.String accountId)
Returns:
a generated name for a ResourceAccount object.

forResource

public static AttributeCondition[] forResource(Resource r)

unownedOnResource

public static AttributeCondition[] unownedOnResource(Resource r)

getType

public Type getType()
Description copied from class: PersistentObject
Return the type of this object. This must be implemented by each subclass.

Specified by:
getType in class PersistentObject
Returns:
the associated Type object.

getResourceId

public java.lang.String getResourceId()
Returns:
the resource account id.

getAccountId

public java.lang.String getAccountId()
Returns:
the resource account id.

listQueryableAttributes

public java.util.List listQueryableAttributes()
Overrides:
listQueryableAttributes in class PersistentObject
Returns:
the complete list of defined attributes that this type of PersistentObject exposes as queryable attributes (regardless of whether this object has a value for each).

Any subclass of PersistentObject that overrides this method should first invoke super.listQueryableAttributes() to ensure that the subclass includes queryable attributes that are common to all PersistentObjects.


listSummaryAttributes

public java.util.List listSummaryAttributes()
Description copied from class: PersistentObject
Returns the complete list of defined attributes that this type of persistent object exposes as summary attributes (regardless of whether this particular object has a value for each).

Any subclass of PersistentObject that overrides this method should first invoke super.listSummaryAttributes() to ensure that the subclass includes summary attributes that are common to all PersistentObjects.

Any subclass that overrides this implementation must also consider the length of the summary string that will be generated from these attributes.

Overrides:
listSummaryAttributes in class PersistentObject
Returns:
the complete list of defined attributes that this type of PersistentObject exposes as summary attributes (regardless of whether this object has a value for each).

Any subclass of PersistentObject that overrides this method should first invoke super.listSummaryAttributes() to ensure that the subclass includes summary attributes that are common to all PersistentObjects.

See Also:
Constants.MAX_SUMMARY_STRING_LENGTH, PersistentObject.getSummaryString()

getAttributeValues

protected WSAttribute getAttributeValues(java.lang.String attrName)
Overrides:
getAttributeValues in class PersistentObject
Parameters:
attrName - - the name of the attribute for which to return values.
Returns:
a WSAttribute that represents the value (or values) that this object contains for the specified attribute.


toString

public java.lang.String toString()
Overrides:
toString in class PersistentObject

equals

public boolean equals(java.lang.Object o)
Description copied from class: PersistentObject
Compares two objects for equality of identity.

This method overrides the java.lang.Object equals method. It determines equality based on whether the two identities of the current object and the object argument are equal, where equal is defined as:

  1. The object argument is either an instance of a PersistentObject or an ObjectRef
  2. The types must match
  3. If both ids are not null, they must be the same
  4. If either or both ids are null, then the names must be the same

Note that this will makes it impossible to use the equals() method to do content comparison of two object copies. I'm not sure I really like this, its an unusual way to have equals() behave, but it is convenient for searching collections for references.

Overrides:
equals in class PersistentObject
Parameters:
o - - a PersistentObject or an ObjectRef

addSubclassAttributes

protected void addSubclassAttributes(java.lang.StringBuffer b)
Description copied from class: PersistentObject
Each concrete subclass may append to the buffer an XML representation of any fields it adds to PersistentObject (if those field values must persist). PersistentObject's default implementation is a no-op.

NOTE: Any subclass that overrides this method must similarly override parseSubclassAttributes() so that the subclass attributes are restored.

Overrides:
addSubclassAttributes in class PersistentObject
See Also:


addSubclassElements

protected void addSubclassElements(java.lang.StringBuffer b)
Description copied from class: PersistentObject
Each concrete subclass may append to the buffer an XML representation of any fields it adds to PersistentObject (if those field values must persist). PersistentObject's default implementation is a no-op.

NOTE: Any subclass that overrides this method must similarly override parseSubclassElements() so that the subclass elements are restored.

Overrides:
addSubclassElements in class PersistentObject
See Also:


parseSubclassAttributes

protected void parseSubclassAttributes(org.w3c.dom.Element e)
                                throws WavesetException
Description copied from class: PersistentObject
Each concrete subclass should parse from the XML buffer any persisted subclass-specific fields (generally, the same ones that it writes into the buffer).

Overrides:
parseSubclassAttributes in class PersistentObject
Throws:
WavesetException
See Also:

PersistentObject's default implementation is a no-op.

, PersistentObject.parseXml(Element)

parseSubclassElements

protected void parseSubclassElements(org.w3c.dom.Element e)
                              throws WavesetException
Description copied from class: PersistentObject
Each concrete subclass should parse from the XML buffer any persisted subclass-specific elements (generally, the same ones that it writes into the buffer).

Overrides:
parseSubclassElements in class PersistentObject
Throws:
WavesetException
See Also:

PersistentObject's default implementation is a no-op.

, PersistentObject.parseXml(Element)

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Throws:
java.lang.Exception