|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||

java.lang.Objectorg.mmbase.bridge.util.AbstractCloud
public abstract class AbstractCloud
This abstract implementation of Cloud implements all methods which are based on implementations of other methods, and implements things which many cloud implementataion likely have to do themselves, like properties.
| Field Summary | |
|---|---|
protected Map<String,Transaction> |
transactions
|
| Fields inherited from interface org.mmbase.bridge.Cloud |
|---|
PROP_IGNOREVALIDATION, PROP_REQUEST, PROP_RESPONSE, PROP_SESSIONNAME, PROP_XMLMODE |
| Constructor Summary | |
|---|---|
AbstractCloud(String n,
UserContext uc)
|
|
| Method Summary | |
|---|---|
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 associated 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)
Returns 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. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected final Map<String,Transaction> transactions
| Constructor Detail |
|---|
public AbstractCloud(String n,
UserContext uc)
| Method Detail |
|---|
public abstract Node getNode(int number)
CloudNode with a reference to this
instance of Cloud.
getNode in interface Cloudnumber - the number of the requested node
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 node
NotFoundException - if the specified node could not be found
public Node getNodeByAlias(String alias)
throws NotFoundException
CloudNode with a reference to this
instance of Cloud.
getNodeByAlias in interface Cloudalias - the alias of the requested node
NotFoundException - if the specified node could not be found
public Relation getRelation(int number)
throws NotFoundException
CloudRelation with a reference to this
instance of Cloud.
getRelation in interface Cloudnumber - the number of the requested node
NotFoundException - if the specified node could not be found
public 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 node
NotFoundException - if the specified node could not be foundpublic boolean hasNode(int number)
CloudCloud.mayRead(int) to determine this.
hasNode in interface Cloudnumber - the number of the node
public boolean hasNode(String number)
CloudCloud.mayRead(int) to determine this.
hasNode in interface Cloudnumber - a string containing the number or alias of the requested node
public boolean hasRelation(int number)
CloudCloud.mayRead(int) to determine this.
hasRelation in interface Cloudnumber - the number of the node
public boolean hasRelation(String number)
CloudCloud.mayRead(int) to determine this.
hasRelation in interface Cloudnumber - a string containing the number or alias of the requested node
public boolean mayRead(int number)
Cloud
mayRead in interface Cloudnumber - the number of the requested node
public boolean may(Action action,
Parameters parameters)
Cloud
may in interface Cloudaction - Action to performparameters - parameters passed into this action
true when allowedpublic boolean mayRead(String number)
Cloud
mayRead in interface Cloudnumber - a string containing the number or alias of the requested node
public abstract NodeManagerList getNodeManagers()
Cloud
getNodeManagers in interface CloudNodeManagerList containing all node managers
available in this cloud.public abstract NodeManager getNodeManager(String name)
Cloud
getNodeManager in interface Cloudname - the name of the requested node manager
public boolean hasNodeManager(String name)
Cloud
hasNodeManager in interface Cloudname - the name of the requested node manager
true if the specified node manager exists
public NodeManager getNodeManager(int nodeManagerId)
throws NotFoundException
getNodeManager in interface CloudnodeManagerId - Unique ID of the NodeManager to retrieve
NotFoundException - if the specified node manager could not be found
public RelationManager getRelationManager(int relationManagerId)
throws NotFoundException
getRelationManager in interface CloudrelationManagerId - Unique ID of the RelationManager to retrieve
NotFoundException - if the specified relation manager could not be found
public RelationManager getRelationManager(String roleName)
throws NotFoundException
Cloud
getRelationManager in interface CloudroleName - name of the role
NotFoundException - if the specified relation manager could not be found
public RelationManager getRelationManager(String sourceManagerName,
String destinationManagerName,
String roleName)
throws NotFoundException
Cloud
getRelationManager in interface CloudsourceManagerName - name of the node manager of the source nodedestinationManagerName - name of the node manager of the destination noderoleName - name of the role
NotFoundException - if the specified relation manager could not be found
public RelationManager getRelationManager(NodeManager sourceManager,
NodeManager destinationManager,
String roleName)
throws NotFoundException
Cloud
getRelationManager in interface CloudsourceManager - the node manager of the source nodedestinationManager - the node manager of the destination noderoleName - name of the role
NotFoundException - if the specified relation manager could not be found
public final boolean hasRelationManager(String sourceManagerName,
String destinationManagerName,
String roleName)
Cloud
hasRelationManager in interface CloudsourceManagerName - name of the node manager of the source nodedestinationManagerName - name of the node manager of the destination noderoleName - name of the role
true if the specified relation manager could be found
public boolean hasRelationManager(NodeManager sourceManager,
NodeManager destinationManager,
String roleName)
Cloud
hasRelationManager in interface CloudsourceManager - name of the node manager of the source nodedestinationManager - name of the node manager of the destination noderoleName - name of the role
true if the specified relation manager could be foundpublic boolean hasRole(String roleName)
Cloud
hasRole in interface CloudroleName - name of the role
true if the specified role could be foundpublic boolean hasRelationManager(String roleName)
Cloud
hasRelationManager in interface CloudroleName - name of the role
true if the specified relation manager existspublic RelationManagerList getRelationManagers()
Cloud
getRelationManagers in interface CloudRelationManagerList containing all relation
managers available in this cloud
public RelationManagerList getRelationManagers(String sourceManagerName,
String destinationManagerName,
String roleName)
throws NotFoundException
Cloud
getRelationManagers 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 rolename
RelationManagerList containing all relation
managers that follow this filter
NotFoundException - if one of the specified relation managers or the rolename could not be found
public RelationManagerList getRelationManagers(NodeManager sourceManager,
NodeManager destinationManager,
String roleName)
throws NotFoundException
Cloud
getRelationManagers in interface CloudsourceManager - the manager for the source of the relationdestinationManager - the manager for the destination of the relationroleName - the rolename
RelationManagerList containing all relation
managers that follwo thsi filter
NotFoundException - if one of the specified relation managers or the rolename could not be foundpublic abstract CloudContext getCloudContext()
Cloud
getCloudContext in interface CloudCloudContext to which this cloud belongspublic Transaction createTransaction()
CloudTransaction will have a generic ID.
createTransaction in interface CloudTransaction on this cloud
public Transaction createTransaction(String name)
throws AlreadyExistsException
Cloud
createTransaction in interface Cloudname - an unique name to use for the transaction
Transaction on this cloud
AlreadyExistsException - if a transaction with the specified name allready exists
public Transaction createTransaction(String name,
boolean overwrite)
throws AlreadyExistsException
Cloud
createTransaction 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 user
Transaction on this cloud
AlreadyExistsException - if a transaction with the specified name allready
exists and overwrite is falseprotected Transaction newTransaction(String name)
public Transaction getTransaction(String name)
Cloud
getTransaction in interface Cloudname - the name of the requested transaction
public String getName()
CloudTransaction.
getName in interface Cloudpublic 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()
Cloud
getUser in interface Cloud
public 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 execute
SearchQuerypublic 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.
setLocale in interface Cloudlocale - To which locale it must be set. It can be null, in which case it will be reset to a default.public Locale getLocale()
CloudCloud instance.
getLocale in interface Cloudpublic Object getProperty(Object key)
CloudTransaction), then this will also mirror properties in this
parent cloud.
getProperty in interface Cloudkey - the key of the property
Cloud.setProperty(Object, Object)
public void setProperty(Object key,
Object value)
Cloud
setProperty in interface Cloudkey - the key of the propertyvalue - the property valuepublic Map<Object,Object> getProperties()
Cloud
getProperties in interface Cloudpublic Collection<Function<?>> getFunctions(String setName)
CloudFunction object.
getFunctions in interface CloudsetName - name of the function set
Function objects.
public Function<?> getFunction(String setName,
String functionName)
CloudFunction object.
getFunction in interface CloudsetName - name of the function setfunctionName - name of the function
Function object.public NodeList createNodeList()
Cloud
createNodeList in interface Cloudpublic RelationList createRelationList()
Cloud
createRelationList in interface Cloudpublic NodeManagerList createNodeManagerList()
Cloud
createNodeManagerList in interface Cloudpublic RelationManagerList createRelationManagerList()
Cloud
createRelationManagerList in interface Cloudpublic StringList getPossibleContexts()
Cloud
getPossibleContexts in interface Cloudpublic Cloud getNonTransactionalCloud()
Cloud
getNonTransactionalCloud in interface CloudTransactionpublic void shutdown()
Cloud
shutdown in interface Cloud
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||