org.mmbase.bridge
Interface Node

Package class diagram package Node
All Superinterfaces:
Comparable<Node>
All Known Subinterfaces:
NodeManager, Relation, RelationManager
All Known Implementing Classes:
AbstractNode, AbstractNodeManager, AnnotatedNode, ChangedNode, MapNode, MapNodeManager, MockNode, MockNodeManager, MockRelation, MockRelationManager, NodeChanger, NodeMap, NodeMapWithoutProcess, NodeWrapper

public interface Node
extends Comparable<Node>

Describes an object in the cloud.

Version:
$Id: Node.java 44632 2011-01-06 22:19:55Z michiel $
Author:
Rob Vermeulen, Pierre van Rooden

Field Summary
static String CLOUD_COMMITNODE_KEY
          During commit of the node, this property of the cloud, should contain the node number of the node
 
Method Summary
 void cancel()
          Cancel changes to a node This fails if the current node is not in edit mode.
 void commit()
          Commit the node to the database.
 int countRelatedNodes(NodeManager otherNodeManager, String role, String searchDir)
           
 int countRelatedNodes(String nodeManager)
          Returns the number of related nodes that have a specific node manager.
 int countRelations()
          Returns the number of relations this node has with other nodes.
 int countRelations(String relationManager)
          Returns the number of relation nodes attached to this node that have a specific relation manager.
 void createAlias(String alias)
          Create an alias for this node.
 Parameters createParameters(String functionName)
          Creates a parameter list for a function.
 Relation createRelation(Node destinationNode, RelationManager relationManager)
          Adds a relation between this node and a specified node to the cloud.
 void delete()
          Removes the Node.
 void delete(boolean deleteRelations)
          Removes the Node.
 void deleteAlias(String alias)
          Delete an alias for this node.
 void deleteRelations()
          Removes all relation nodes attached to this node.
 void deleteRelations(String relationManager)
          Removes all relation nodes with a certain relation manager that are attached to this node.
 StringList getAliases()
          Returns all aliases for this node.
 boolean getBooleanValue(String fieldName)
          Returns the value of the specified field as a boolean.
 byte[] getByteValue(String fieldName)
          Returns the value of the specified field as a byte array.
 Set<String> getChanged()
          A Set of Strings containing the names of all changed fields.
 Cloud getCloud()
          Returns the cloud this node belongs to.
 String getContext()
          Get the security context of the current Node
 Date getDateValue(String fieldName)
           
 BigDecimal getDecimalValue(String fieldName)
           
 double getDoubleValue(String fieldName)
          Returns the value of the specified field as a double.
 FieldValue getFieldValue(Field field)
          Returns the value of the specified field as a FieldValue object.
 FieldValue getFieldValue(String fieldName)
          Returns the value of the specified field as a FieldValue object.
 float getFloatValue(String fieldName)
          Returns the value of the specified field as a float.
 Function<?> getFunction(String functionName)
          Returns a Fuction object.
 Collection<Function<?>> getFunctions()
          Returns all the Function objects of this Node
 FieldValue getFunctionValue(String functionName, List<?> parameters)
          Returns the value of the specified function on the node.
 InputStream getInputStreamValue(String fieldName)
          Returns the value of the specified field as a java.io.InputStream This is especially useful for large byte-array fields.
 int getIntValue(String fieldName)
          Returns the value of the specified field as an int.
 List<?> getListValue(String fieldName)
           
 long getLongValue(String fieldName)
          Returns the value of the specified field as a long.
 NodeManager getNodeManager()
          Returns the node manager for this node.
 Node getNodeValue(String fieldName)
          Returns the value of the specified field as a Node.
 int getNumber()
          Returns the unique number for this node.
 Object getObjectValue(String fieldName)
          Returns the field's value as an object.
 StringList getPossibleContexts()
          Contacts the security implementation to find out to which other possible contexts the context of this node may be set.
 NodeList getRelatedNodes()
          Returns all related nodes.
 NodeList getRelatedNodes(NodeManager nodeManager)
          Returns all related nodes that have a specific node manager.
 NodeList getRelatedNodes(NodeManager nodeManager, String role, String searchDir)
          Returns all related nodes that have a specific node manager and role.
 NodeList getRelatedNodes(String nodeManager)
          Returns all related nodes that have a specific node manager.
 NodeList getRelatedNodes(String nodeManager, String role, String searchDir)
          Returns all related nodes that have a specific node manager and role.
 RelationList getRelations()
          Returns all relation nodes attached to this node.
 RelationList getRelations(String role)
          Returns all relation nodes attached to this node that have a specific role
 RelationList getRelations(String role, NodeManager nodeManager)
          Returns all relation nodes attached to this node that have a specific role, or refer a node from a specific nodemanager
 RelationList getRelations(String role, NodeManager nodeManager, String searchDir)
           
 RelationList getRelations(String role, String nodeManager)
          Returns all relation nodes attached to this node that have a specific role, or refer a node from a specific nodemanager
 long getSize(String fieldName)
          Returns the 'size' (e.g.
 String getStringValue(String fieldName)
          Returns the value of the specified field as a String.
 Object getValue(String fieldName)
          Returns the value of the specified field as an object.
 Object getValueWithoutProcess(String fieldName)
          Like getObjectValue, but skips any processing that MMBase would normally perform on a field.
 Document getXMLValue(String fieldName)
          Returns the value of the specified field as a dom.Document If the node value is not itself a Document, the method attempts to attempts to convert the String value into an XML.
 Element getXMLValue(String fieldName, Document tree)
          Returns the value of the specified field as a dom.Element If the node value is not itself a Document, the method attempts to attempts to convert the String value into an XML.
 boolean hasRelations()
          Checks whether this node has any relations.
 boolean isChanged()
          Whether field values were changed since the last commit.
 boolean isChanged(String fieldName)
          Whether a certain field's value was changed since the last commit.
 boolean isNew()
          Whether this Node is new (not yet committed).
 boolean isNodeManager()
          Determine whether this Node is a NodeManager.
 boolean isNull(String fieldName)
          Whether the value for the specified field is null.
 boolean isRelation()
          Determine whether this Node is a Relation.
 boolean isRelationManager()
          Determine whether this Node is a RelationManager.
 boolean mayChangeContext()
          Check context-change rights on this node.
 boolean mayDelete()
          Check delete rights on this node.
 boolean mayWrite()
          Check write rights on this node.
 void setBooleanValue(String fieldName, boolean value)
          Sets the value of the specified field using an boolean.
 void setByteValue(String fieldName, byte[] value)
          Sets the value of the specified field using a byte array.
 void setContext(String context)
          Sets the security context of this Node (AKA the 'owner' field)
 void setDateValue(String fieldName, Date value)
          Sets the value of the specified field using a Date.
 void setDecimalValue(String fieldName, BigDecimal value)
          Sets the value of the specified field using a BigDecimal.
 void setDoubleValue(String fieldName, double value)
          Sets the value of the specified field using a double.
 void setFloatValue(String fieldName, float value)
          Sets the value of the specified field using a float.
 void setInputStreamValue(String fieldName, InputStream value, long size)
          Sets the value of the specified field using a java.io.InputStream.
 void setIntValue(String fieldName, int value)
          Sets the value of the specified field using an int.
 void setListValue(String fieldName, List<?> value)
          Sets the value of the specified field using a List.
 void setLongValue(String fieldName, long value)
          Sets the value of the specified field using a long.
 void setNodeManager(NodeManager nm)
          Sets the node manager of this node.
 void setNodeValue(String fieldName, Node value)
          Sets the value of the specified field using an Node.
 void setObjectValue(String fieldName, Object value)
          Sets the value of the specified field using an object, but without dispatching to the right type first.
 void setStringValue(String fieldName, String value)
          Sets the value of the specified field using a String.
 void setValue(String fieldName, Object value)
          Sets the value of the specified field using an object, but delegated to the right set--Value depending on the type of the field.
 void setValueWithoutProcess(String fieldName, Object value)
          Like setValue, but skips any processing that MMBase would normally perform on a field.
 void setXMLValue(String fieldName, Document value)
          Set's the value of the specified field as a dom.Element
 NodeManager toNodeManager()
          Returns this as a NodeManager.
 Relation toRelation()
          Returns this as a Relation.
 RelationManager toRelationManager()
          Returns this as a RelationManager.
 String toString()
          Converts the node to a string
 Collection<String> validate()
          Validates a node by checking the values from it's fields against the constraints of each field's datatype.
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Field Detail

CLOUD_COMMITNODE_KEY

static final String CLOUD_COMMITNODE_KEY
During commit of the node, this property of the cloud, should contain the node number of the node

Since:
MMBase-1.9.1
See Also:
Constant Field Values
Method Detail

getCloud

Cloud getCloud()
Returns the cloud this node belongs to.

Returns:
the Cloud

getNodeManager

NodeManager getNodeManager()
Returns the node manager for this node.

Returns:
the node manager

setNodeManager

void setNodeManager(NodeManager nm)
Sets the node manager of this node. Note that if this nodemanager is not a descendant of the current node manager, information may get lost!

Throws:
SecurityException - If you are not allowed to change this node, or not allowed to create nodes of the destination type.
Since:
MMBase-1.9.1

getNumber

int getNumber()
Returns the unique number for this node. Every node has a unique number which can be used to refer to it. In addition to this number a node can have one or more aliases. A value of -1 indicates an invalid number. Other negative values may be used for temporary ids (but not true node numbers). This may differ by implementation.

Returns:
the unique number for this node
See Also:
createAlias(String alias)

isRelation

boolean isRelation()
Determine whether this Node is a Relation.

Returns:
true if this Node is a Relation.
Since:
MMBase-1.6

toRelation

Relation toRelation()
Returns this as a Relation.

Returns:
a Relation object
Throws:
ClassCastException - if the Node is not a Relation
Since:
MMBase-1.6

isNodeManager

boolean isNodeManager()
Determine whether this Node is a NodeManager.

Returns:
true if this Node is a NodeManager.
Since:
MMBase-1.6

toNodeManager

NodeManager toNodeManager()
Returns this as a NodeManager.

Returns:
a NodeManager object
Throws:
ClassCastException - if the Node is not a NodeManager
Since:
MMBase-1.6

isRelationManager

boolean isRelationManager()
Determine whether this Node is a RelationManager.

Returns:
true if this Node is a RelationManager.
Since:
MMBase-1.6

toRelationManager

RelationManager toRelationManager()
Returns this as a RelationManager.

Returns:
a NodeManager object
Throws:
ClassCastException - if the Node is not a RelationManager
Since:
MMBase-1.6

setValue

void setValue(String fieldName,
              Object value)
Sets the value of the specified field using an object, but delegated to the right set--Value depending on the type of the field. For example a field of type int can be set using an Integer. This change will not be visible to the cloud until the commit method is called.

Parameters:
fieldName - the name of the field to be updated
value - the new value for the given field

setValueWithoutProcess

void setValueWithoutProcess(String fieldName,
                            Object value)
Like setValue, but skips any processing that MMBase would normally perform on a field. You can use this to set data on fields that are 'system' defined, to prevent (among other things) infinite recursion. Use with care - in general processing of a field has a purpose!

Parameters:
fieldName - name of field
value - new value of the field
Since:
MMBase-1.8

setObjectValue

void setObjectValue(String fieldName,
                    Object value)
Sets the value of the specified field using an object, but without dispatching to the right type first.

Parameters:
fieldName - the name of the field to be updated
value - the new value for the given field
Since:
MMBase-1.7

setBooleanValue

void setBooleanValue(String fieldName,
                     boolean value)
Sets the value of the specified field using an boolean. This change will not be visible to the cloud until the commit method is called.

Parameters:
fieldName - the name of the field to be updated
value - the new value for the given field
Since:
MMBase-1.6

setNodeValue

void setNodeValue(String fieldName,
                  Node value)
Sets the value of the specified field using an Node. This change will not be visible to the cloud until the commit method is called.

Parameters:
fieldName - the name of the field to be updated
value - the new value for the given field
Since:
MMBase-1.6

setIntValue

void setIntValue(String fieldName,
                 int value)
Sets the value of the specified field using an int. This change will not be visible to the cloud until the commit method is called.

Parameters:
fieldName - the name of the field to be updated
value - the new value for the given field

setFloatValue

void setFloatValue(String fieldName,
                   float value)
Sets the value of the specified field using a float. This change will not be visible to the cloud until the commit method is called.

Parameters:
fieldName - the name of the field to be updated
value - the new value for the given field

setDoubleValue

void setDoubleValue(String fieldName,
                    double value)
Sets the value of the specified field using a double. This change will not be visible to the cloud until the commit method is called.

Parameters:
fieldName - the name of the field to be updated
value - the new value for the given field

setByteValue

void setByteValue(String fieldName,
                  byte[] value)
Sets the value of the specified field using a byte array. This change will not be visible to the cloud until the commit method is called.

Parameters:
fieldName - the name of the field to be updated
value - the new value for the given field

setInputStreamValue

void setInputStreamValue(String fieldName,
                         InputStream value,
                         long size)
Sets the value of the specified field using a java.io.InputStream.

Parameters:
fieldName - the name of the field to be updated
value - the new value for the given field
size - size of input stream
Since:
MMBase-1.8.

setLongValue

void setLongValue(String fieldName,
                  long value)
Sets the value of the specified field using a long. This change will not be visible to the cloud until the commit method is called.

Parameters:
fieldName - the name of the field to be updated
value - the new value for the given field

setStringValue

void setStringValue(String fieldName,
                    String value)
Sets the value of the specified field using a String. This change will not be visible to the cloud until the commit method is called.

Parameters:
fieldName - the name of the field to be updated
value - the new value for the given field

setDateValue

void setDateValue(String fieldName,
                  Date value)
Sets the value of the specified field using a Date. This change will not be visible to the cloud until the commit method is called.

Parameters:
fieldName - the name of the field to be updated
value - the new value for the given field
Since:
MMBase-1.8

setDecimalValue

void setDecimalValue(String fieldName,
                     BigDecimal value)
Sets the value of the specified field using a BigDecimal. This change will not be visible to the cloud until the commit method is called.

Parameters:
fieldName - the name of the field to be updated
value - the new value for the given field
Since:
MMBase-1.9.1

setListValue

void setListValue(String fieldName,
                  List<?> value)
Sets the value of the specified field using a List. This change will not be visible to the cloud until the commit method is called.

Parameters:
fieldName - the name of the field to be updated
value - the new value for the given field // not yet working
Since:
MMBase-1.8

isNull

boolean isNull(String fieldName)
Whether the value for the specified field is null. This avoids acquiring the complete value if you only want to check if for emptiness.

Parameters:
fieldName - the name of the field
Returns:
true when value is null
Since:
MMBase-1.8

getSize

long getSize(String fieldName)
Returns the 'size' (e.g. the number of bytes of a byte array) for the specified field. This avoids acquiring the complete value if you only want to know how big the value of the field is.

Parameters:
fieldName - the name of the field
Returns:
the 'size'
Since:
MMBase-1.8

getValue

Object getValue(String fieldName)
Returns the value of the specified field as an object. For example a field of type int is returned as an Integer. The object type may vary and is dependent on how data was stored in a field. I.e. It may be possible for an Integer field to return it's value as a String if it was stored that way in the first place.

Parameters:
fieldName - the name of the field to be returned
Returns:
the value of the specified field
Throws:
IllegalArgumentException - if mmbase is 'in development' (i.e. 'strict' mode) and the field does not exist.

getObjectValue

Object getObjectValue(String fieldName)
Returns the field's value as an object. It is not delegated to the right get--Value.

Parameters:
fieldName - name of the field
Returns:
object value
Throws:
IllegalArgumentException - if mmbase is 'in development' (i.e. 'strict' mode) and the field does not exist.
Since:
MMBase-1.7

getValueWithoutProcess

Object getValueWithoutProcess(String fieldName)
Like getObjectValue, but skips any processing that MMBase would normally perform on a field. You can use this to get data from a field for validation purposes.

Parameters:
fieldName - name of field
Returns:
value without processing
Throws:
IllegalArgumentException - if mmbase is 'in development' (i.e. 'strict' mode) and the field does not exist.
Since:
MMBase-1.8

getBooleanValue

boolean getBooleanValue(String fieldName)
Returns the value of the specified field as a boolean. If the actual value is numeric, this call returns true if the value is a positive, non-zero, value. In other words, values '0' and '-1' are considered false. If the value is a string, this call returns true if the value is "true" or "yes" (case-insensitive). In all other cases (including calling byte fields), false is returned.

Parameters:
fieldName - the name of the field to be returned
Returns:
the value of the specified field
Throws:
IllegalArgumentException - if mmbase is 'in development' (i.e. 'strict' mode) and the field does not exist.

getNodeValue

Node getNodeValue(String fieldName)
Returns the value of the specified field as a Node. If the value is not itself a Node, this call attempts to convert the original field value to a Node, by trying to retrieve a Node using the field value as a Node number or alias.
For instance, getNodeValue("destination"), when run on a OAlias object, returns the referenced destination node (instead of the number, which is what it normally holds).
Mostly, this call is used in cluster nodes (nodes retrieved by using the Cloud.getList method. A cluster node returns one of its compound nodes when an appropriate nodemanager name (name from the nodepath) is specified. I.e. getNodeValue("people") will return the people-node in the cluster. If this fails, the method returns null.
Notes: the behavior of getNodeValue when called on a field that is not intended to be a node reference is currently undefined and is not encouraged.
Calling this method with field "number" or null lets the Node return a reference to itself, regardless of the actual value of the number field or status of the Node.

Parameters:
fieldName - the name of the field to be returned
Returns:
the value of the specified field
Throws:
IllegalArgumentException - if mmbase is 'in development' (i.e. 'strict' mode) and the field does not exist.
See Also:
Cloud.getList(String, String, String, String, String, String, String, boolean)

getIntValue

int getIntValue(String fieldName)
Returns the value of the specified field as an int. Numeric fields are simply converted. Double and float values may be truncated. For Node values, the numeric key is returned. Long values return -1 of the value is too large. Boolean fields return 0 if false, and 1 if true. String fields are parsed. If a parsed string contains an error, ot the field value is not of a type that can be converted (i.e. a byte array), this function returns -1

Parameters:
fieldName - the name of the field to be returned
Returns:
the value of the specified field
Throws:
IllegalArgumentException - if mmbase is 'in development' (i.e. 'strict' mode) and the field does not exist.

getFloatValue

float getFloatValue(String fieldName)
Returns the value of the specified field as a float. This function attempts to convert the value to a float. Numeric fields are simply converted. Boolean fields return 0.0 if false, and 1.0 if true. String fields are parsed. If a parsed string contains an error, ot the field value is not of a type that can be converted (i.e. a byte array), this function returns -1.0.

Parameters:
fieldName - the name of the field to be returned
Returns:
the value of the specified field

getLongValue

long getLongValue(String fieldName)
Returns the value of the specified field as a long. This function attempts to convert the value to a long. Numeric fields are simply converted. Double and float values may be truncated. Boolean fields return 0 if false, and 1 if true. String fields are parsed. If a parsed string contains an error, ot the field value is not of a type that can be converted (i.e. a byte array), this function returns -1

Parameters:
fieldName - the name of the field to be returned
Returns:
the value of the specified field
Throws:
IllegalArgumentException - if mmbase is 'in development' (i.e. 'strict' mode) and the field does not exist.

getDoubleValue

double getDoubleValue(String fieldName)
Returns the value of the specified field as a double. This function attempts to convert the value to a double. Numeric fields are simply converted. Double may be truncated. Boolean fields return 0.0 if false, and 1.0 if true. String fields are parsed. If a parsed string contains an error, ot the field value is not of a type that can be converted (i.e. a byte array), this function returns -1.0.

Parameters:
fieldName - the name of the field to be returned
Returns:
the value of the specified field
Throws:
IllegalArgumentException - if mmbase is 'in development' (i.e. 'strict' mode) and the field does not exist.

getByteValue

byte[] getByteValue(String fieldName)
Returns the value of the specified field as a byte array. This function returns either the value of a byte field, or the byte value of a string (converted using the default encoding, i.e. UTF8) Other types of values return an empty byte-array.

Parameters:
fieldName - the name of the field to be returned
Returns:
the value of the specified field
Throws:
IllegalArgumentException - if mmbase is 'in development' (i.e. 'strict' mode) and the field does not exist.

getInputStreamValue

InputStream getInputStreamValue(String fieldName)
Returns the value of the specified field as a java.io.InputStream This is especially useful for large byte-array fields. By this you can avoid them to be completely stored in memory.

Parameters:
fieldName - the name of the field
Returns:
value of field as a input stream
Throws:
IllegalArgumentException - if mmbase is 'in development' (i.e. 'strict' mode) and the field does not exist.
Since:
MMBase-1.8

getStringValue

String getStringValue(String fieldName)
Returns the value of the specified field as a String. Byte arrays are converted to string using the default encoding (UTF8). Node values return a string representation of their numeric key. For other values the result is calling the toString() method on the actual object.

Parameters:
fieldName - the name of the field to be returned
Returns:
the value of the specified field
Throws:
IllegalArgumentException - if mmbase is 'in development' (i.e. 'strict' mode) and the field does not exist.

getDateValue

Date getDateValue(String fieldName)
Parameters:
fieldName - the name of the field to be returned
Returns:
the value of the specified field
Throws:
IllegalArgumentException - if mmbase is 'in development' (i.e. 'strict' mode) and the field does not exist.
Since:
MMBase-1.8

getDecimalValue

BigDecimal getDecimalValue(String fieldName)
Parameters:
fieldName - the name of the field to be returned
Returns:
the value of the specified field
Throws:
IllegalArgumentException - if mmbase is 'in development' (i.e. 'strict' mode) and the field does not exist.
Since:
MMBase-1.9.1

getListValue

List<?> getListValue(String fieldName)
Parameters:
fieldName - the name of the field to be returned
Returns:
the value of the specified field
Throws:
IllegalArgumentException - if mmbase is 'in development' (i.e. 'strict' mode) and the field does not exist. not yet working
Since:
MMBase-1.8

getFieldValue

FieldValue getFieldValue(String fieldName)
                         throws NotFoundException
Returns the value of the specified field as a FieldValue object.

Parameters:
fieldName - the name of the field whose value to return
Returns:
the value of the specified field
Throws:
NotFoundException - is the field does not exist and MMBase 'in development' (i.e. strict mode)
Since:
MMBase-1.6

getFieldValue

FieldValue getFieldValue(Field field)
Returns the value of the specified field as a FieldValue object.

Parameters:
field - the Field object whose value to return
Returns:
the value of the specified field
Since:
MMBase-1.6

validate

Collection<String> validate()
Validates a node by checking the values from it's fields against the constraints of each field's datatype. For performance reasons, it only validates fields that actually changed (as of MMBase 1.8.4), or when a new node is created. This method is called by the commit() method, after commit processors are run. Note that because commit processors may make necessary changes to field values, it is possible for validate() to fail when used outside the commit process if the constraints are set too strict.

Returns:
Collection of errors as String (in the current locale of the cloud) or an empty collection if everything ok.
Since:
MMBase-1.8

commit

void commit()
Commit the node to the database. Prior to committing, the values are processed by any commit-processors associated with the datatype of the node's fields), then validated. Makes this node and/or the changes made to this node visible to the cloud. If this method is called for the first time on this node it will make this node visible to the cloud, otherwise the modifications made to this node using the set methods will be made visible to the cloud. This action fails if the current node is not in edit mode. If the node is in a transaction, nothing happens - actual committing occurs through the transaction.

Throws:
BridgeException
IllegalArgumentException - If a certain value of the node is invalid according to it's data type.

cancel

void cancel()
Cancel changes to a node This fails if the current node is not in edit mode. If the node is in a transaction, nothing happens - actual committing occurs through the transaction.


delete

void delete()
Removes the Node. Throws an exception if it still has relations. Like delete(false).


isNew

boolean isNew()
Whether this Node is new (not yet committed).

Returns:
true when new
Since:
MMBase-1.8

isChanged

boolean isChanged(String fieldName)
Whether a certain field's value was changed since the last commit.

Parameters:
fieldName - the name of the field
Returns:
true when field's value was changed
Since:
MMBase-1.8

getChanged

Set<String> getChanged()
A Set of Strings containing the names of all changed fields.

Returns:
Set of changed fields
Since:
MMBase-1.8

isChanged

boolean isChanged()
Whether field values were changed since the last commit.

Returns:
true when changed
Since:
MMBase-1.8

delete

void delete(boolean deleteRelations)
Removes the Node.

Parameters:
deleteRelations - a boolean. If true, then first all existing relations with this node will be removed.

toString

String toString()
Converts the node to a string

Overrides:
toString in class Object
Returns:
string representation of a node

getXMLValue

Document getXMLValue(String fieldName)
                     throws IllegalArgumentException
Returns the value of the specified field as a dom.Document If the node value is not itself a Document, the method attempts to attempts to convert the String value into an XML. This included the empty string, but not the 'null' value. If the value is null, this method returns null

Parameters:
fieldName - the name of the field to be returned
Returns:
the value of the specified field as a DOM Element or null
Throws:
IllegalArgumentException - if the value cannot be converted to xml, or the field does not exist.
Since:
MMBase-1.6

getXMLValue

Element getXMLValue(String fieldName,
                    Document tree)
                    throws IllegalArgumentException
Returns the value of the specified field as a dom.Element If the node value is not itself a Document, the method attempts to attempts to convert the String value into an XML. This method fails (throws a IllegalArgumentException) if the Field is not of type TYPE_XML. If the value cannot be converted, this method returns null

Parameters:
fieldName - the name of the field to be returned
tree - the DOM Document to which the Element is added (as the document root element)
Returns:
the value of the specified field as a DOM Element or null
Throws:
IllegalArgumentException - if the value cannot be converted to xml.
Since:
MMBase-1.6

setXMLValue

void setXMLValue(String fieldName,
                 Document value)
Set's the value of the specified field as a dom.Element

Parameters:
fieldName - the name of the field to be returned
value - the DOM Document to has to be set, if not correct doc-type, system will try to convert it to the wanted type.
Since:
MMBase-1.6

hasRelations

boolean hasRelations()
Checks whether this node has any relations.

Returns:
true if the node has relations

deleteRelations

void deleteRelations()
Removes all relation nodes attached to this node.


deleteRelations

void deleteRelations(String relationManager)
Removes all relation nodes with a certain relation manager that are attached to this node.

Parameters:
relationManager - the name of the relation manager the removed relation nodes should have

getRelations

RelationList getRelations()
Returns all relation nodes attached to this node.

Returns:
a list of relation nodes

getRelations

RelationList getRelations(String role)
Returns all relation nodes attached to this node that have a specific role

Parameters:
role - the name of the role the returned relation nodes should have
Returns:
a list of relation nodes

getRelations

RelationList getRelations(String role,
                          String nodeManager)
Returns all relation nodes attached to this node that have a specific role, or refer a node from a specific nodemanager

Parameters:
role - the name of the role the returned relation nodes should have
nodeManager - the name of the nodemanager for the nodes the returned relation nodes should have a relation to
Returns:
a list of relation nodes

getRelations

RelationList getRelations(String role,
                          NodeManager nodeManager)
Returns all relation nodes attached to this node that have a specific role, or refer a node from a specific nodemanager

Parameters:
role - the name of the role the returned relation nodes should have
nodeManager - the nodemanager for the nodes the returned relation nodes should have a relation to (can be null)
Returns:
a list of relation nodes

getRelations

RelationList getRelations(String role,
                          NodeManager nodeManager,
                          String searchDir)
Parameters:
role - forward role of a relation
nodeManager - node manager on the other side of the relation
searchDir - the direction of the relation
Returns:
List of relations
Since:
MMBase-1.7

countRelations

int countRelations()
Returns the number of relations this node has with other nodes.

Returns:
the number of relations this node has with other nodes

countRelations

int countRelations(String relationManager)
Returns the number of relation nodes attached to this node that have a specific relation manager.

Parameters:
relationManager - relation manager
Returns:
the number of relation nodes attached to this node that have a specific relation manager

getRelatedNodes

NodeList getRelatedNodes()
Returns all related nodes. The returned nodes are not the nodes directly attached to this node (the relation nodes) but the nodes attached to the relation nodes of this node.

Returns:
a list of all related nodes

getRelatedNodes

NodeList getRelatedNodes(String nodeManager)
Returns all related nodes that have a specific node manager. The returned nodes are not the nodes directly attached to this node (the relation nodes) but the nodes attached to the relation nodes of this node.

Parameters:
nodeManager - the name of the node manager the returned nodes should have
Returns:
a list of related nodes

getRelatedNodes

NodeList getRelatedNodes(NodeManager nodeManager)
Returns all related nodes that have a specific node manager. The returned nodes are not the nodes directly attached to this node (the relation nodes) but the nodes attached to the relation nodes of this node.

Parameters:
nodeManager - the node manager the returned nodes should have, can be null
Returns:
a list of related nodes

getRelatedNodes

NodeList getRelatedNodes(String nodeManager,
                         String role,
                         String searchDir)
Returns all related nodes that have a specific node manager and role. The returned nodes are not the nodes directly attached to this node (the relation nodes) but the nodes attached to the relation nodes of this node.

Parameters:
nodeManager - the name of the node manager the returned nodes should have
role - the role of the relation
searchDir - the direction of the relation
Returns:
a list of related nodes
Since:
MMBase-1.6

getRelatedNodes

NodeList getRelatedNodes(NodeManager nodeManager,
                         String role,
                         String searchDir)
Returns all related nodes that have a specific node manager and role. The returned nodes are not the nodes directly attached to this node (the relation nodes) but the nodes attached to the relation nodes of this node.

Parameters:
nodeManager - the node manager the returned nodes should have
role - the role of the relation
searchDir - the direction of the relation
Returns:
a list of related nodes
Since:
MMBase-1.6

countRelatedNodes

int countRelatedNodes(String nodeManager)
Returns the number of related nodes that have a specific node manager. The counted nodes are not the nodes directly attached to this node (the relation nodes) but the nodes attached to the relation nodes of this node.

Parameters:
nodeManager - the name of the node manager the counted nodes should have
Returns:
the number of related nodes that have a specific node manager

countRelatedNodes

int countRelatedNodes(NodeManager otherNodeManager,
                      String role,
                      String searchDir)
Parameters:
otherNodeManager - the node manager the nodes should have
role - the role of the relation
searchDir - the direction of the relation
Returns:
number of related nodes
Since:
MMBase-1.7

getAliases

StringList getAliases()
Returns all aliases for this node.

Returns:
a list of alias names for this node

createAlias

void createAlias(String alias)
Create an alias for this node. An alias can be used to refer to a node in addition to his number.

Parameters:
alias - the alias to be created for this node
Throws:
BridgeException - if the alias allready exists

deleteAlias

void deleteAlias(String alias)
Delete an alias for this node.

Parameters:
alias - the alias to be removed for this node

createRelation

Relation createRelation(Node destinationNode,
                        RelationManager relationManager)
Adds a relation between this node and a specified node to the cloud.

Parameters:
destinationNode - the node to which you want to relate this node
relationManager - the relation manager you want to use
Returns:
the added relation
Throws:
BridgeException - if the relation manager is not the right one for this type of relation

setContext

void setContext(String context)
Sets the security context of this Node (AKA the 'owner' field)

Parameters:
context - The security context to which this node should belong,
Throws:
SecurityException - When appropriate rights to perform this are lacking (write / change context rights)

getContext

String getContext()
Get the security context of the current Node

Returns:
the current context of the node (as a String)
Throws:
SecurityException - When appropriate rights to perform this are lacking (read rights)

getPossibleContexts

StringList getPossibleContexts()
Contacts the security implementation to find out to which other possible contexts the context of this node may be set.

Returns:
A StringList containing the contexts which can be used in setContext on this node.
Throws:
SecurityException - When appropriate rights to perform this are lacking (read rights)

mayWrite

boolean mayWrite()
Check write rights on this node.

Returns:
Whether the node may be changed by the current user

mayDelete

boolean mayDelete()
Check delete rights on this node.

Returns:
Whether the node may be deleted by the current user

mayChangeContext

boolean mayChangeContext()
Check context-change rights on this node.

Returns:
Whether the current user may change the context of this node

getFunctions

Collection<Function<?>> getFunctions()
Returns all the Function objects of this Node

Returns:
a Collection of Function objects.
Since:
MMBase-1.8

getFunction

Function<?> getFunction(String functionName)
Returns a Fuction object. The object returned is a Function object. You need to explixitly cast the result to this object, since not all bridge implementations (i.e. the RMMCI) support this class.

Parameters:
functionName - name of the function
Returns:
a Function object.
Throws:
NotFoundException - if the function does not exist
Since:
MMBase-1.8

createParameters

Parameters createParameters(String functionName)
Creates a parameter list for a function. The list can be filled with parameter values by either using the List set(int, Object) method, to set values for parameters by psoition, or by using the set(String, Object) method to set parameters by name.
This object can then be passed to the getFunctionValue method. Note that adding extra parameters (with the add(Object) method) won't work and may cause exceptions.

Parameters:
functionName - name of the function
Returns:
a Parameters object.
Throws:
NotFoundException - if the function does not exist
Since:
MMBase-1.8

getFunctionValue

FieldValue getFunctionValue(String functionName,
                            List<?> parameters)
Returns the value of the specified function on the node. A function normally has arguments, which can be supplied with a List.

Parameters:
functionName - name of the function
parameters - list with parameters for the fucntion
Returns:
the result value of executing the function
Throws:
NotFoundException - if the function does not exist
Since:
MMBase-1.6


MMBase2 Bridge 2.0-SNAPSHOT - 2013-11-29T11:05