|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.alfresco.repo.version.NodeServiceImpl
public class NodeServiceImpl
The light weight version store node service implementation.
| Field Summary | |
|---|---|
protected ContentDataDAO |
contentDataDAO
|
protected NodeService |
dbNodeService
|
protected DictionaryService |
dicitionaryService
|
protected static java.lang.String |
MSG_UNSUPPORTED
Error messages |
| Fields inherited from interface org.alfresco.repo.version.VersionBaseModel |
|---|
ASPECT_LOCALNAME_VERSION_STORE_ROOT, ASSOC_LOCALNAME_ROOT_VERSION, CHILD_VERSION_HISTORIES, CHILD_VERSIONS, PROP_CREATED_DATE, PROP_CREATOR, PROP_DESCRIPTION, PROP_TRANSLATION_VERSIONS, PROP_VERSION_DESCRIPTION, PROP_VERSION_LABEL, PROP_VERSION_NUMBER, PROP_VERSION_TYPE, PROP_VERSIONED_NODE_ID, STORE_PROTOCOL, TYPE_VERSION_HISTORY |
| Constructor Summary | |
|---|---|
NodeServiceImpl()
|
|
| Method Summary | |
|---|---|
void |
addAspect(NodeRef nodeRef,
QName aspectRef,
java.util.Map aspectProperties)
Applies an aspect to the given node. |
java.util.List |
addChild(java.util.Collection parentRefs,
NodeRef childRef,
QName assocTypeQName,
QName qname)
Associates a given child node with a given collection of parents. |
ChildAssociationRef |
addChild(NodeRef parentRef,
NodeRef childRef,
QName assocTypeQName,
QName qname)
Makes a parent-child association between the given nodes. |
void |
addProperties(NodeRef nodeRef,
java.util.Map properties)
Add all given properties to the node. |
java.util.List |
cleanup()
No-op |
AssociationRef |
createAssociation(NodeRef sourceRef,
NodeRef targetRef,
QName assocTypeQName)
|
ChildAssociationRef |
createNode(NodeRef parentRef,
QName assocTypeQName,
QName assocQName,
QName nodeTypeQName)
|
ChildAssociationRef |
createNode(NodeRef parentRef,
QName assocTypeQName,
QName assocQName,
QName nodeTypeQName,
java.util.Map properties)
Creates a new, non-abstract, real node as a primary child of the given parent node. |
StoreRef |
createStore(java.lang.String protocol,
java.lang.String identifier)
Delegates to the NodeService used as the version store implementation |
void |
deleteNode(NodeRef nodeRef)
Deletes the given node. |
void |
deleteStore(StoreRef storeRef)
Delete a store and all its contents. |
boolean |
exists(NodeRef nodeRef)
Delegates to the NodeService used as the version store implementation |
boolean |
exists(StoreRef storeRef)
Delegates to the NodeService used as the version store implementation |
java.util.Set |
getAspects(NodeRef nodeRef)
Translation for version store |
AssociationRef |
getAssoc(java.lang.Long id)
Gets an association by ID. |
java.util.List |
getChildAssocs(NodeRef nodeRef)
Get all child associations of the given node. |
java.util.List |
getChildAssocs(NodeRef nodeRef,
QNamePattern typeQNamePattern,
QNamePattern qnamePattern)
Performs conversion from version store properties to real associations |
java.util.List |
getChildAssocs(NodeRef nodeRef,
QNamePattern typeQNamePattern,
QNamePattern qnamePattern,
boolean preload)
Gets all child associations where the pattern of the association qualified name is a match. |
java.util.List |
getChildAssocs(NodeRef nodeRef,
java.util.Set childNodeTypes)
Retrieve immediate children of a given node where the child nodes are in the given inclusive list and not in the given exclusive list. |
java.util.Collection |
getChildAssocsWithoutParentAssocsOfType(NodeRef parent,
QName assocTypeQName)
Gets the set of child associations of a certain parent node without parent associations of a certain type to other nodes with the same parent! In effect the 'orphans' with respect to a certain association type. |
NodeRef |
getChildByName(NodeRef nodeRef,
QName assocTypeQName,
java.lang.String childName)
Get the node with the given name within the context of the parent node. |
java.util.List |
getChildrenByName(NodeRef nodeRef,
QName assocTypeQName,
java.util.Collection childNames)
Get the nodes with the given names within the context of the parent node. |
NodeRef.Status |
getNodeStatus(NodeRef nodeRef)
Delegates to the NodeService used as the version store implementation |
java.util.List |
getParentAssocs(NodeRef nodeRef)
The node will appear to be attached to the root of the version store |
java.util.List |
getParentAssocs(NodeRef nodeRef,
QNamePattern typeQNamePattern,
QNamePattern qnamePattern)
The node will apprear to be attached to the root of the version store |
Path |
getPath(NodeRef nodeRef)
The root node has an entry in the path(s) returned. |
java.util.List |
getPaths(NodeRef nodeRef,
boolean primaryOnly)
The root node has an entry in the path(s) returned. |
ChildAssociationRef |
getPrimaryParent(NodeRef nodeRef)
Simulates the node begin attached ot the root node of the version store. |
java.util.Map |
getProperties(NodeRef nodeRef)
Property translation for version store |
java.io.Serializable |
getProperty(NodeRef nodeRef,
QName qname)
Property translation for version store |
NodeRef |
getRootNode(StoreRef storeRef)
Delegates to the NodeService used as the version store implementation |
java.util.List |
getSourceAssocs(NodeRef sourceRef,
QNamePattern qnamePattern)
Fetches all associations to the given target where the associations' qualified names match the pattern provided. |
NodeRef |
getStoreArchiveNode(StoreRef storeRef)
Get the node where archived items will have gone when deleted from the given store. |
java.util.List |
getStores()
Delegates to the NodeService used as the version store implementation |
java.util.List |
getTargetAssocs(NodeRef sourceRef,
QNamePattern qnamePattern)
Fetches all associations from the given source where the associations' qualified names match the pattern provided. |
QName |
getType(NodeRef nodeRef)
Type translation for version store |
boolean |
hasAspect(NodeRef nodeRef,
QName aspectRef)
Translation for version store |
ChildAssociationRef |
moveNode(NodeRef nodeToMoveRef,
NodeRef newParentRef,
QName assocTypeQName,
QName assocQName)
Moves the primary location of the given node. |
void |
removeAspect(NodeRef nodeRef,
QName aspectRef)
Remove an aspect and all related properties from a node |
void |
removeAssociation(NodeRef sourceRef,
NodeRef targetRef,
QName assocTypeQName)
|
void |
removeChild(NodeRef parentRef,
NodeRef childRef)
Severs all parent-child relationships between two nodes. |
boolean |
removeChildAssociation(ChildAssociationRef childAssocRef)
Remove a specific child association. |
void |
removeProperty(NodeRef nodeRef,
QName qname)
Removes a property value completely. |
boolean |
removeSeconaryChildAssociation(ChildAssociationRef childAssocRef)
Remove a specific secondary child association. |
NodeRef |
restoreNode(NodeRef archivedNodeRef,
NodeRef targetParentNodeRef,
QName assocTypeQName,
QName assocQName)
Restore an individual node (along with its sub-tree nodes) to the target location. |
void |
setChildAssociationIndex(ChildAssociationRef childAssocRef,
int index)
Set the ordering index of the child association. |
void |
setContentDataDAO(ContentDataDAO contentDataDAO)
Set the DAO to resolved content data reference IDs into ContentData instances |
void |
setDbNodeService(NodeService nodeService)
Sets the db node service, used as the version store implementation |
void |
setDictionaryService(DictionaryService dictionaryService)
Sets the dictionary service |
void |
setProperties(NodeRef nodeRef,
java.util.Map properties)
Set the values of all properties to be an Serializable instances. |
void |
setProperty(NodeRef nodeRef,
QName qame,
java.io.Serializable value)
Sets the value of a property to be any Serializable instance. |
void |
setSearcher(SearchService searcher)
Sets the searcher |
void |
setType(NodeRef nodeRef,
QName typeQName)
Re-sets the type of the node. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected static final java.lang.String MSG_UNSUPPORTED
protected NodeService dbNodeService
protected DictionaryService dicitionaryService
protected ContentDataDAO contentDataDAO
| Constructor Detail |
|---|
public NodeServiceImpl()
| Method Detail |
|---|
public void setDbNodeService(NodeService nodeService)
nodeService - the node servicepublic void setSearcher(SearchService searcher)
public void setDictionaryService(DictionaryService dictionaryService)
public void setContentDataDAO(ContentDataDAO contentDataDAO)
public java.util.List cleanup()
public java.util.List getStores()
NodeService used as the version store implementation
getStores in interface NodeService
public StoreRef createStore(java.lang.String protocol,
java.lang.String identifier)
NodeService used as the version store implementation
createStore in interface NodeServiceidentifier - the protocol-specific identifier
public void deleteStore(StoreRef storeRef)
NodeService
deleteStore in interface NodeServicestoreRef - the store to delete
java.lang.UnsupportedOperationException - alwayspublic boolean exists(StoreRef storeRef)
NodeService used as the version store implementation
exists in interface NodeServicestoreRef - a reference to the store to look for
public boolean exists(NodeRef nodeRef)
NodeService used as the version store implementation
exists in interface NodeServicenodeRef - a reference to the node to look for
public NodeRef.Status getNodeStatus(NodeRef nodeRef)
NodeService used as the version store implementation
getNodeStatus in interface NodeServicenodeRef - a reference to a current or previously existing node
public NodeRef getRootNode(StoreRef storeRef)
NodeService used as the version store implementation
getRootNode in interface NodeServicestoreRef - a reference to an existing store
public ChildAssociationRef createNode(NodeRef parentRef,
QName assocTypeQName,
QName assocQName,
QName nodeTypeQName)
throws InvalidNodeRefException
createNode in interface NodeServicejava.lang.UnsupportedOperationException - always
InvalidNodeRefExceptionNodeService.createNode(NodeRef, QName, QName, QName, Map)
public ChildAssociationRef createNode(NodeRef parentRef,
QName assocTypeQName,
QName assocQName,
QName nodeTypeQName,
java.util.Map properties)
throws InvalidNodeRefException
NodeService
createNode in interface NodeServiceparentRef - the parent nodeassocTypeQName - the type of the association to create. This is used
for verification against the data dictionary.assocQName - the qualified name of the associationnodeTypeQName - a reference to the node typeproperties - optional map of properties to keyed by their qualified names
java.lang.UnsupportedOperationException - always
InvalidNodeRefException - if the parent reference is invalidDictionaryService
public void deleteNode(NodeRef nodeRef)
throws InvalidNodeRefException
NodeServiceAll associations (both children and regular node associations) will be deleted, and where the given node is the primary parent, the children will also be cascade deleted.
deleteNode in interface NodeServicenodeRef - reference to a node within a store
java.lang.UnsupportedOperationException - always
InvalidNodeRefException - if the reference given is invalid
public ChildAssociationRef addChild(NodeRef parentRef,
NodeRef childRef,
QName assocTypeQName,
QName qname)
throws InvalidNodeRefException
NodeService
addChild in interface NodeServiceassocTypeQName - the qualified name of the association type as defined in the datadictionaryqname - the qualified name of the association
java.lang.UnsupportedOperationException - always
InvalidNodeRefException - if the parent or child nodes could not be found
public java.util.List addChild(java.util.Collection parentRefs,
NodeRef childRef,
QName assocTypeQName,
QName qname)
throws InvalidNodeRefException
NodeService
addChild in interface NodeServiceassocTypeQName - the qualified name of the association type as defined in the datadictionaryqname - the qualified name of the association
java.lang.UnsupportedOperationException - always
InvalidNodeRefException - if the parent or child nodes could not be found
public void removeChild(NodeRef parentRef,
NodeRef childRef)
throws InvalidNodeRefException
NodeServiceThe child node will be cascade deleted if one of the associations was the primary association, i.e. the one with which the child node was created.
removeChild in interface NodeServiceparentRef - the parent end of the associationchildRef - the child end of the association
java.lang.UnsupportedOperationException - always
InvalidNodeRefException - if the parent or child nodes could not be foundpublic boolean removeChildAssociation(ChildAssociationRef childAssocRef)
NodeServiceThe child node will be cascade deleted if the association was the primary association, i.e. the one with which the child node was created.
removeChildAssociation in interface NodeServicechildAssocRef - the association to remove
java.lang.UnsupportedOperationException - alwayspublic boolean removeSeconaryChildAssociation(ChildAssociationRef childAssocRef)
NodeService
removeSeconaryChildAssociation in interface NodeServicechildAssocRef - the association to remove
java.lang.UnsupportedOperationException - always
public ChildAssociationRef moveNode(NodeRef nodeToMoveRef,
NodeRef newParentRef,
QName assocTypeQName,
QName assocQName)
throws InvalidNodeRefException
NodeServiceThis involves changing the node's primary parent and possibly the name of the association referencing it.
If the new parent is in a different store from the original, then the entire node hierarchy is moved to the new store. Inter-store associations are not affected.
moveNode in interface NodeServicenodeToMoveRef - the node to movenewParentRef - the new parent of the moved nodeassocTypeQName - the type of the association to create. This is used
for verification against the data dictionary.assocQName - the qualified name of the new child association
java.lang.UnsupportedOperationException - always
InvalidNodeRefException - if either the parent node or move node reference is invalidNodeService.getPrimaryParent(NodeRef)
public void setChildAssociationIndex(ChildAssociationRef childAssocRef,
int index)
throws InvalidChildAssociationRefException
NodeService
setChildAssociationIndex in interface NodeServicechildAssocRef - the child association that must be moved in the orderindex - an arbitrary index that will affect the return order
java.lang.UnsupportedOperationException - always
InvalidChildAssociationRefExceptionNodeService.getChildAssocs(NodeRef),
NodeService.getChildAssocs(NodeRef, QNamePattern, QNamePattern),
ChildAssociationRef.getNthSibling()
public QName getType(NodeRef nodeRef)
throws InvalidNodeRefException
getType in interface NodeServiceInvalidNodeRefException - if the node could not be foundDictionaryService
public void setType(NodeRef nodeRef,
QName typeQName)
throws InvalidNodeRefException
NodeService
setType in interface NodeServicenodeRef - the node referencetypeQName - the type QName
InvalidNodeRefExceptionNodeService.setType(org.alfresco.service.cmr.repository.NodeRef, org.alfresco.service.namespace.QName)
public void addAspect(NodeRef nodeRef,
QName aspectRef,
java.util.Map aspectProperties)
throws InvalidNodeRefException,
InvalidAspectException
NodeService
addAspect in interface NodeServiceaspectRef - the aspect to apply to the nodeaspectProperties - a minimum of the mandatory properties required for
the aspect
java.lang.UnsupportedOperationException - always
InvalidNodeRefException
InvalidAspectException - if the class reference is not to a valid aspectDictionaryService.getAspect(QName),
ClassDefinition.getProperties()
public boolean hasAspect(NodeRef nodeRef,
QName aspectRef)
throws InvalidNodeRefException,
InvalidAspectException
hasAspect in interface NodeServiceInvalidNodeRefException - if the node could not be found
InvalidAspectException - if the aspect reference is invalid
public void removeAspect(NodeRef nodeRef,
QName aspectRef)
throws InvalidNodeRefException,
InvalidAspectException
NodeService
removeAspect in interface NodeServiceaspectRef - the type of aspect to remove
java.lang.UnsupportedOperationException - always
InvalidNodeRefException - if the node could not be found
InvalidAspectException - if the the aspect is unknown or if the
aspect is mandatory for the class of the node
public java.util.Set getAspects(NodeRef nodeRef)
throws InvalidNodeRefException
getAspects in interface NodeServiceInvalidNodeRefException - if the node could not be found
public java.util.Map getProperties(NodeRef nodeRef)
throws InvalidNodeRefException
getProperties in interface NodeServiceInvalidNodeRefException - if the node could not be found
public java.io.Serializable getProperty(NodeRef nodeRef,
QName qname)
throws InvalidNodeRefException
getProperty in interface NodeServiceqname - the qualified name of the property
InvalidNodeRefException - if the node could not be found
public void setProperties(NodeRef nodeRef,
java.util.Map properties)
throws InvalidNodeRefException
NodeServiceSerializable instances.
The properties given must still fulfill the requirements of the class and
aspects relevant to the node.
NOTE: Null values are allowed.
setProperties in interface NodeServicenodeRef - the node to chanceproperties - all the properties of the node keyed by their qualified names
java.lang.UnsupportedOperationException - always
InvalidNodeRefException - if the node could not be found
public void addProperties(NodeRef nodeRef,
java.util.Map properties)
throws InvalidNodeRefException
NodeServiceNOTE: Null values are allowed and will replace the existing value.
addProperties in interface NodeServicenodeRef - the node to changeproperties - the properties to change, keyed by their qualified names
java.lang.UnsupportedOperationException - always
InvalidNodeRefException - if the node could not be found
public void setProperty(NodeRef nodeRef,
QName qame,
java.io.Serializable value)
throws InvalidNodeRefException
NodeServiceSerializable instance.
NOTE: Null values are allowed.
setProperty in interface NodeServicenodeRef - a reference to an existing nodeqame - the fully qualified name of the property
java.lang.UnsupportedOperationException - always
InvalidNodeRefException - if the node could not be found
public void removeProperty(NodeRef nodeRef,
QName qname)
throws InvalidNodeRefException
NodeService
removeProperty in interface NodeServicenodeRef - a reference to an existing nodeqname - the fully qualified name of the property
java.lang.UnsupportedOperationException - always
InvalidNodeRefException - if the node could not be foundpublic java.util.List getParentAssocs(NodeRef nodeRef)
getParentAssocs in interface NodeServicenodeRef - the child node
NodeService.getParentAssocs(NodeRef)
public java.util.List getParentAssocs(NodeRef nodeRef,
QNamePattern typeQNamePattern,
QNamePattern qnamePattern)
getParentAssocs in interface NodeServicenodeRef - the child nodetypeQNamePattern - the pattern that the type qualified name of the association must matchqnamePattern - the pattern that the qnames of the assocs must match
NodeService.getParentAssocs(NodeRef, QNamePattern, QNamePattern)
public java.util.List getChildAssocs(NodeRef nodeRef)
throws InvalidNodeRefException
NodeServiceThe resultant list is ordered by (a) explicit index and (b) association creation time.
getChildAssocs in interface NodeServicenodeRef - the parent node - usually a container
ChildAssocRef instances. If the
node is not a container then the result will be empty.
InvalidNodeRefException - if the node could not be foundRegexQNamePattern.MATCH_ALL,
NodeServiceImpl.getChildAssocs(NodeRef, QNamePattern, QNamePattern)
public java.util.List getChildAssocs(NodeRef nodeRef,
QNamePattern typeQNamePattern,
QNamePattern qnamePattern,
boolean preload)
throws InvalidNodeRefException
NodeServicewildcard
for the type and a specific qualified name for the association is
akin to using the XPath browse expression ./{url}localname in the context of the
parent node.
getChildAssocs in interface NodeServicenodeRef - the parent node - usually a containertypeQNamePattern - the pattern that the type qualified name of the association must matchqnamePattern - the pattern that the qnames of the assocs must matchpreload - should the nodes be preloaded into the cache?
ChildAssociationRef instances. If the
node is not a container then the result will be empty.
InvalidNodeRefException - if the node could not be foundQName,
RegexQNamePattern.MATCH_ALL
public java.util.List getChildAssocs(NodeRef nodeRef,
QNamePattern typeQNamePattern,
QNamePattern qnamePattern)
throws InvalidNodeRefException
getChildAssocs in interface NodeServicenodeRef - the parent node - usually a containertypeQNamePattern - the pattern that the type qualified name of the association must matchqnamePattern - the pattern that the qnames of the assocs must match
ChildAssociationRef instances. If the
node is not a container then the result will be empty.
InvalidNodeRefException - if the node could not be foundQName,
RegexQNamePattern.MATCH_ALL
public java.util.List getChildAssocs(NodeRef nodeRef,
java.util.Set childNodeTypes)
NodeService
getChildAssocs in interface NodeServicenodeRef - the parent node - usually a container
ChildAssociationRef instances.
java.lang.UnsupportedOperationException - always
public java.util.List getChildrenByName(NodeRef nodeRef,
QName assocTypeQName,
java.util.Collection childNames)
NodeService
getChildrenByName in interface NodeServicechildNames - a collection of up to 1000 child names to match on
java.lang.UnsupportedOperationException - always#getChildByName(NodeRef, QName, String)}
public NodeRef getChildByName(NodeRef nodeRef,
QName assocTypeQName,
java.lang.String childName)
NodeServiceThat API method getChildByName only works for associations that don't allow duplicate child names. See cm:folder and the duplicate tag. Child associations without this allow duplicate child names and therefore it is possible to have multiple children with the same name stored against the given association type.
getChildByName in interface NodeServicenodeRef - the parent node - usuall a containerassocTypeQName - the type of the associationchildName - the name of the node as per the property cm:name
java.lang.UnsupportedOperationException - always
public ChildAssociationRef getPrimaryParent(NodeRef nodeRef)
throws InvalidNodeRefException
getPrimaryParent in interface NodeServiceInvalidNodeRefException - if the node could not be found
public AssociationRef createAssociation(NodeRef sourceRef,
NodeRef targetRef,
QName assocTypeQName)
throws InvalidNodeRefException,
AssociationExistsException
createAssociation in interface NodeServicesourceRef - a reference to a real nodetargetRef - a reference to a nodeassocTypeQName - the qualified name of the association type
java.lang.UnsupportedOperationException - always
InvalidNodeRefException - if either of the nodes could not be found
AssociationExistsException
public void removeAssociation(NodeRef sourceRef,
NodeRef targetRef,
QName assocTypeQName)
removeAssociation in interface NodeServicesourceRef - the associaton source nodetargetRef - the association target nodeassocTypeQName - the qualified name of the association type
java.lang.UnsupportedOperationException - alwayspublic AssociationRef getAssoc(java.lang.Long id)
getAssoc in interface NodeServiceassocId - the association id
null if it does not exist
public java.util.List getTargetAssocs(NodeRef sourceRef,
QNamePattern qnamePattern)
NodeService
getTargetAssocs in interface NodeServicesourceRef - the association sourceqnamePattern - the association qname pattern to match against
NodeAssocRef instances for which the
given node is a source
java.lang.UnsupportedOperationException - alwaysQName,
RegexQNamePattern.MATCH_ALL
public java.util.List getSourceAssocs(NodeRef sourceRef,
QNamePattern qnamePattern)
NodeService
getSourceAssocs in interface NodeServicesourceRef - the association targetqnamePattern - the association qname pattern to match against
NodeAssocRef instances for which the
given node is a target
java.lang.UnsupportedOperationException - alwaysQName,
RegexQNamePattern.MATCH_ALL
public Path getPath(NodeRef nodeRef)
throws InvalidNodeRefException
NodeService
getPath in interface NodeServicejava.lang.UnsupportedOperationException - always
InvalidNodeRefException - if the node could not be foundNodeService.getPaths(NodeRef, boolean)
public java.util.List getPaths(NodeRef nodeRef,
boolean primaryOnly)
throws InvalidNodeRefException
NodeService
getPaths in interface NodeServiceprimaryOnly - true if only the primary path must be retrieved. If true, the
result will have exactly one entry.
java.lang.UnsupportedOperationException - always
InvalidNodeRefException - if the node could not be foundpublic NodeRef getStoreArchiveNode(StoreRef storeRef)
NodeService
getStoreArchiveNode in interface NodeServicestoreRef - the store that items were deleted from
java.lang.UnsupportedOperationException - always
public NodeRef restoreNode(NodeRef archivedNodeRef,
NodeRef targetParentNodeRef,
QName assocTypeQName,
QName assocQName)
NodeServicearchived aspect
set against it.
restoreNode in interface NodeServicearchivedNodeRef - the archived nodetargetParentNodeRef - the parent to move the node into
or null to use the originalassocTypeQName - the primary association type name to use in the new location
or null to use the originalassocQName - the primary association name to use in the new location
or null to use the original
java.lang.UnsupportedOperationException - always
public java.util.Collection getChildAssocsWithoutParentAssocsOfType(NodeRef parent,
QName assocTypeQName)
NodeService
getChildAssocsWithoutParentAssocsOfType in interface NodeServiceparent - the parent node referenceassocTypeQName - the association type QName
java.lang.UnsupportedOperationException - always
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||