public abstract class AbstractCloud extends Object implements Cloud
| Modifier and Type | Field and Description |
|---|---|
protected Map<String,Transaction> |
transactions |
PROP_IGNOREVALIDATION, PROP_REQUEST, PROP_RESPONSE, PROP_SESSIONNAME, PROP_XMLMODE| Constructor and Description |
|---|
AbstractCloud(String n,
UserContext uc) |
| Modifier and Type | Method and Description |
|---|---|
Query |
createAggregatedQuery() |
NodeList |
createNodeList()
Returns a new, empty node list for this cloud
|
NodeManagerList |
createNodeManagerList()
Returns a new, empty node manager list for this cloud
|
NodeQuery |
createNodeQuery()
Create an empty NodeQuery, which can be filled, and used in
NodeManager.getList(NodeQuery) or
Cloud.getList(Query) (but then no 'real' node are returned). |
Query |
createQuery()
Create an empty Query, which can be filled, and used in
Cloud.getList(Query). |
RelationList |
createRelationList()
Returns a new, empty relation list for this cloud
|
RelationManagerList |
createRelationManagerList()
Returns a new, empty relation manager list for this cloud
|
Transaction |
createTransaction()
Creates a transaction on this cloud.
|
Transaction |
createTransaction(String name)
Creates a transaction on this cloud with a specified name.
|
Transaction |
createTransaction(String name,
boolean overwrite)
Creates a transaction on this cloud with a specified name.
|
abstract CloudContext |
getCloudContext()
Returns the context to which this cloud belongs.
|
String |
getDescription()
This may return
Cloud.getName(), but in principable it could have been localized using the
value also returned by Cloud.getLocale(). |
Function<?> |
getFunction(String setName,
String functionName)
Returns a Function object from a function set.
|
Collection<Function<?>> |
getFunctions(String setName)
Returns all Function objects from a function set.
|
NodeList |
getList(Query query)
Executes a query and returns the result as a Cluster Node List (also if the query is a
NodeQuery). |
NodeList |
getList(String startNodes,
String nodePath,
String fields,
String constraints,
String orderby,
String directions,
String searchDir,
boolean distinct)
Returns a list of virtual nodes that are composed by fields of other
nodes.
|
Locale |
getLocale()
Gets the locale assocatied with this
Cloud instance. |
String |
getName()
Returns the name of this cloud.
|
abstract Node |
getNode(int number)
Returns the node with the specified number from this cloud.
|
Node |
getNode(String number)
Returns the node with the specified number from this cloud.
|
Node |
getNodeByAlias(String alias)
Returns the node with the specified alias from this cloud.
|
NodeManager |
getNodeManager(int nodeManagerId)
On default we don't associate number id's with node managers
|
abstract NodeManager |
getNodeManager(String name)
Returns the specified node manager.
|
abstract NodeManagerList |
getNodeManagers()
Returns all node managers available in this cloud.
|
Cloud |
getNonTransactionalCloud()
Returns a cloud which is not a Transaction.
|
StringList |
getPossibleContexts()
Contacts the security implementation to find out to which possible contexts are
available to the current user.
|
Map<Object,Object> |
getProperties()
Retrieves all properties previously set for this cloud.
|
Object |
getProperty(Object key)
Retrieves a property previously set for this cloud.
|
Relation |
getRelation(int number)
Returns the relation with the specified number from this cloud.
|
Relation |
getRelation(String number)
Returns the relation with the specified number from this cloud.
|
RelationManager |
getRelationManager(int relationManagerId)
On default we don't associated number id's with node managers
|
RelationManager |
getRelationManager(NodeManager sourceManager,
NodeManager destinationManager,
String roleName)
Returns the specified relation manager.
|
RelationManager |
getRelationManager(String roleName)
Returns the specified relation manager.
|
RelationManager |
getRelationManager(String sourceManagerName,
String destinationManagerName,
String roleName)
Returns the specified relation manager.
|
RelationManagerList |
getRelationManagers()
Returns all relation managers available in this cloud.
|
RelationManagerList |
getRelationManagers(NodeManager sourceManager,
NodeManager destinationManager,
String roleName)
Returns all relation managers available in this cloud that follow the specified filter.
|
RelationManagerList |
getRelationManagers(String sourceManagerName,
String destinationManagerName,
String roleName)
Returns all relation managers available in this cloud that follow the specified filter.
|
Transaction |
getTransaction(String name)
Returnes the transaction with the specified name.
|
UserContext |
getUser()
Who is using this cloud.
|
boolean |
hasNode(int number)
Determines whether a node with the specified number exists in this cloud.
|
boolean |
hasNode(String number)
Determines whether a node with the specified number is available from this cloud.
|
boolean |
hasNodeManager(String name)
Returns whether the specified node manager exists.
|
boolean |
hasRelation(int number)
Determines whether a relation with the specified number exists in this cloud.
|
boolean |
hasRelation(String number)
Determines whether a relation with the specified number is available from this cloud.
|
boolean |
hasRelationManager(NodeManager sourceManager,
NodeManager destinationManager,
String roleName)
Returns whether the specified relation manager exists.
|
boolean |
hasRelationManager(String roleName)
Returns whether the specified relation manager exists.
|
boolean |
hasRelationManager(String sourceManagerName,
String destinationManagerName,
String roleName)
Returns whether the specified relation manager exists.
|
boolean |
hasRole(String roleName)
Returns whether the specified role exists.
|
boolean |
may(Action action,
Parameters parameters)
Check whether an action is allowed
|
boolean |
mayRead(int number)
Determines whether a node with the specified number is accessible for the user - that is,
the user has sufficient rights to read the node.
|
boolean |
mayRead(String number)
Determines whether a node with the specified number is accessible for the user - that is,
the user has sufficient rights to read the node.
|
protected Transaction |
newTransaction(String name) |
void |
setLocale(Locale locale)
Sets a locale for this
Cloud instance. |
void |
setProperty(Object key,
Object value)
Sets a property for this cloud object.
|
void |
shutdown()
Shutdown MMBase, if you are allowed to do so.
|
protected final Map<String,Transaction> transactions
public AbstractCloud(String n, UserContext uc)
public abstract Node getNode(int number)
CloudNode with a reference to this
instance of Cloud.public Node getNode(String number) throws NotFoundException
CloudNode with a reference to this
instance of Cloud.getNode in interface Cloudnumber - a string containing the number or alias of the requested nodeNotFoundException - if the specified node could not be foundpublic Node getNodeByAlias(String alias) throws NotFoundException
CloudNode with a reference to this
instance of Cloud.getNodeByAlias in interface Cloudalias - the alias of the requested nodeNotFoundException - if the specified node could not be foundpublic Relation getRelation(int number) throws NotFoundException
CloudRelation with a reference to this
instance of Cloud.getRelation in interface Cloudnumber - the number of the requested nodeNotFoundException - if the specified node could not be foundpublic Relation getRelation(String number) throws NotFoundException
CloudRelation with a reference to this
instance of Cloud.getRelation in interface Cloudnumber - a string containing the number or alias of the requested nodeNotFoundException - if the specified node could not be foundpublic boolean hasNode(int number)
CloudCloud.mayRead(int) to determine this.public boolean hasNode(String number)
CloudCloud.mayRead(int) to determine this.public boolean hasRelation(int number)
CloudCloud.mayRead(int) to determine this.hasRelation in interface Cloudnumber - the number of the nodepublic boolean hasRelation(String number)
CloudCloud.mayRead(int) to determine this.hasRelation in interface Cloudnumber - a string containing the number or alias of the requested nodepublic boolean mayRead(int number)
Cloudpublic boolean may(Action action, Parameters parameters)
Cloudpublic boolean mayRead(String number)
Cloudpublic abstract NodeManagerList getNodeManagers()
CloudgetNodeManagers in interface CloudNodeManagerList containing all node managers
available in this cloud.public abstract NodeManager getNodeManager(String name)
CloudgetNodeManager in interface Cloudname - the name of the requested node managerpublic boolean hasNodeManager(String name)
CloudhasNodeManager in interface Cloudname - the name of the requested node managertrue if the specified node manager existspublic NodeManager getNodeManager(int nodeManagerId) throws NotFoundException
getNodeManager in interface CloudnodeManagerId - Unique ID of the NodeManager to retrieveNotFoundException - if the specified node manager could not be foundpublic RelationManager getRelationManager(int relationManagerId) throws NotFoundException
getRelationManager in interface CloudrelationManagerId - Unique ID of the RelationManager to retrieveNotFoundException - if the specified relation manager could not be foundpublic RelationManager getRelationManager(String sourceManagerName, String destinationManagerName, String roleName) throws NotFoundException
CloudgetRelationManager in interface CloudsourceManagerName - name of the node manager of the source nodedestinationManagerName - name of the node manager of the destination noderoleName - name of the roleNotFoundException - if the specified relation manager could not be foundpublic RelationManager getRelationManager(NodeManager sourceManager, NodeManager destinationManager, String roleName) throws NotFoundException
CloudgetRelationManager in interface CloudsourceManager - the node manager of the source nodedestinationManager - the node manager of the destination noderoleName - name of the roleNotFoundException - if the specified relation manager could not be foundpublic boolean hasRelationManager(String sourceManagerName, String destinationManagerName, String roleName)
CloudhasRelationManager in interface CloudsourceManagerName - name of the node manager of the source nodedestinationManagerName - name of the node manager of the destination noderoleName - name of the roletrue if the specified relation manager could be foundpublic boolean hasRelationManager(NodeManager sourceManager, NodeManager destinationManager, String roleName)
CloudhasRelationManager in interface CloudsourceManager - name of the node manager of the source nodedestinationManager - name of the node manager of the destination noderoleName - name of the roletrue if the specified relation manager could be foundpublic boolean hasRole(String roleName)
Cloudpublic RelationManager getRelationManager(String roleName) throws NotFoundException
CloudgetRelationManager in interface CloudroleName - name of the roleNotFoundException - if the specified relation manager could not be foundpublic boolean hasRelationManager(String roleName)
CloudhasRelationManager in interface CloudroleName - name of the roletrue if the specified relation manager existspublic RelationManagerList getRelationManagers()
CloudgetRelationManagers in interface CloudRelationManagerList containing all relation
managers available in this cloudpublic RelationManagerList getRelationManagers(String sourceManagerName, String destinationManagerName, String roleName) throws NotFoundException
CloudgetRelationManagers in interface CloudsourceManagerName - the name of the manager for the source of the relationdestinationManagerName - the name of the manager for the destination of the relationroleName - the rolenameRelationManagerList containing all relation
managers that follow this filterNotFoundException - if one of the specified relation managers or the rolename could not be foundpublic RelationManagerList getRelationManagers(NodeManager sourceManager, NodeManager destinationManager, String roleName) throws NotFoundException
CloudgetRelationManagers in interface CloudsourceManager - the manager for the source of the relationdestinationManager - the manager for the destination of the relationroleName - the rolenameRelationManagerList containing all relation
managers that follwo thsi filterNotFoundException - if one of the specified relation managers or the rolename could not be foundpublic abstract CloudContext getCloudContext()
CloudgetCloudContext in interface CloudCloudContext to which this cloud belongspublic Transaction createTransaction()
CloudTransaction will have a generic ID.createTransaction in interface CloudTransaction on this cloudpublic Transaction createTransaction(String name) throws AlreadyExistsException
CloudcreateTransaction in interface Cloudname - an unique name to use for the transactionTransaction on this cloudAlreadyExistsException - if a transaction with the specified name allready existspublic Transaction createTransaction(String name, boolean overwrite) throws AlreadyExistsException
CloudcreateTransaction in interface Cloudname - an unique name to use for the transactionoverwrite - if true, cancels and replaces
any existing transaction of this name for the current userTransaction on this cloudAlreadyExistsException - if a transaction with the specified name allready
exists and overwrite is falseprotected Transaction newTransaction(String name)
public Transaction getTransaction(String name)
CloudgetTransaction in interface Cloudname - the name of the requested transactionpublic String getName()
CloudTransaction.public String getDescription()
CloudCloud.getName(), but in principable it could have been localized using the
value also returned by Cloud.getLocale().getDescription in interface Cloudpublic UserContext getUser()
Cloudpublic NodeList getList(String startNodes, String nodePath, String fields, String constraints, String orderby, String directions, String searchDir, boolean distinct)
Cloud- A node manager recordcompany containing a field name. - A node manager artist containing a field name. - A node manager url containing a field description and url. - A relation type related between recordcompany and artist. - A relation type related between artist and url. - A relation type homepagerel between artist and url.If node 100 has a node manager called recordcompany we can do the following to get a list of the record company's artists and all urls belonging to these artist (including nodes found through the related relation and the homepagerel relation):
getList("100", "recordcompany,artist,url",
"artist.name,description,url", null, null, null, null, true);
This call returns a list of virtual nodes with the fields artist.name,
description and url for every valid traversal.
If we only want to list homepage urls of the artists we do:
getList("100", "recordcompany,artist,url",
"artist.name,description,homepagerel,url", null, null, null,
null, true);
If we want to list all url's except the the homepage urls we do:
getList("100", "recordcompany,artist,url",
"artist.name,description,related,url", null, null, null, null, true);
If node 200 also has a node manager with name recordcompany we can get the info from their artist together with the info of the artist from the first company by also putting number 200 in the first parameter:
getList("100,200", "recordcompany,artist,url",
"artist.name,description,related,url", null, null, null, null, true);
For more information about the constraints parameter consult
NodeManager.getList(String constraints, String orderby, String
directions).getList in interface CloudstartNodes - A comma separated list of node numbers that should
be used as a starting point for all traversals
or null if all nodes of the first node
manager in nodePath should be used.nodePath - A comma separated list of node manager names
which specifies the path that should be followed.
It is possible to explicitly specify a relation
manager that should be used to go from one node to
an other. If no relation manager is specified
between two nodes, all possible relation managers
that can be used to go to the next specified node in
the path are followed.fields - A comma separated list of field names that will make
up the returned virtual
nodes. A fieldname can be prefixed with the
original node manager name of the field and a dot
in cases where more than one node manager in the
path has a field with the same name.constraints - Constraints to prevent nodes from being
included in the resulting list which would normally
by included or null if no constraints
should be applied.orderby - A comma separated list of field names on which the
returned list should be sorted or null
if the order of the returned virtual nodes doesn't
matter.directions - A comma separated list of values indicating wether
to sort up (ascending) or down (descending) on the
corresponding field in the orderby
parameter or null if sorting on all
fields should be up.
The value DOWN (case insensitive) indicates
that sorting on the corresponding field should be
down, all other values (including the
empty value) indicate that sorting on the
corresponding field should be up.
If the number of values found in this parameter are
less than the number of fields in the
orderby parameter, all fields that
don't have a corresponding direction value are
sorted according to the last specified direction
value.searchDir - Determines how directionality affects the search.
This is a string with the following possible values:"both", which is the default, searches for all
valid relations through a path, checking full directionality
of relations where appropriate.
"destination" searches for only those relations
in a path where valid relations exist from source to destination,
in the order of the nodemanagers given in the nodePath.
"source" searches for only those relations
in a path where valid relations exist from destination to source,
in the order of the nodemanagers given in the nodePath.
"all" searches all existing relations, and does
not check on directionality.
A value of null or any other values than those
listed above are ignored. In that case, search is
treated as if the default ("both") was specified.distinct - true if nodes who allready exist in
the list should not be added to the list.
false if all nodes should be added to
the list even if a node with exactly the same field
values is allready present.public NodeList getList(Query query)
CloudNodeQuery).getList in interface Cloudquery - Query to executeSearchQuerypublic Query createQuery()
CloudCloud.getList(Query).createQuery in interface Cloudpublic Query createAggregatedQuery()
createAggregatedQuery in interface Cloudpublic NodeQuery createNodeQuery()
CloudNodeManager.getList(NodeQuery) or
Cloud.getList(Query) (but then no 'real' node are returned). The query can be used on NodeManager only when at
least one step is added, and NodeQuery.setNodeStep(org.mmbase.storage.search.Step) is called.createNodeQuery in interface Cloudpublic void setLocale(Locale locale)
CloudCloud instance.public Locale getLocale()
CloudCloud instance.public Object getProperty(Object key)
CloudTransaction), then this will also mirror properties in this
parent cloud.getProperty in interface Cloudkey - the key of the propertyCloud.setProperty(Object, Object)public void setProperty(Object key, Object value)
CloudsetProperty in interface Cloudkey - the key of the propertyvalue - the property valuepublic Map<Object,Object> getProperties()
CloudgetProperties in interface Cloudpublic Collection<Function<?>> getFunctions(String setName)
CloudFunction object.getFunctions in interface CloudsetName - name of the function setFunction objects.public Function<?> getFunction(String setName, String functionName)
CloudFunction object.getFunction in interface CloudsetName - name of the function setfunctionName - name of the functionFunction object.public NodeList createNodeList()
CloudcreateNodeList in interface Cloudpublic RelationList createRelationList()
CloudcreateRelationList in interface Cloudpublic NodeManagerList createNodeManagerList()
CloudcreateNodeManagerList in interface Cloudpublic RelationManagerList createRelationManagerList()
CloudcreateRelationManagerList in interface Cloudpublic StringList getPossibleContexts()
CloudgetPossibleContexts in interface Cloudpublic Cloud getNonTransactionalCloud()
CloudgetNonTransactionalCloud in interface CloudTransactionMMBase 1.9-SNAPSHOT - ${javadoctimestamp}