com.bea.content
Class Property

java.lang.Object
  extended by com.bea.content.ContentEntity
      extended by com.bea.content.Property
All Implemented Interfaces
Serializable

public class Property
extends ContentEntity

Property is a name value pair, with the name being unique relative to the Node and the value is an Array of Value objects.

The Value object can represent either BinaryValue, Boolean, Calendar, Double, Long, String, or ID (link property -- link to a node) values.

If the property is multivalued it may contain 0..n Values. If it is not multivalued it may contain 0..1.

A Property is part of a Node and its shape is defined by a PropertyDefinition with the same name in it's Node's ObjectClass.

A property may represent both the content and meta-content for a Node.

Link properties have some special restrictions. They can only be created in extended repositories. A node must exist at the specified ID when the link property is created or saved.

See Also
Serialized Form

Field Summary
static int BINARY
          A Constant to define if the Property is a Binary data type.
static int BOOLEAN
          A Constant to define if the Property is a Boolean data type.
static int CALENDAR
          A Constant to define if the Property is a Calendar data type.
static int DOUBLE
          A Constant to define if the Property is a Double data type.
static int LINK
          A Constant to define if the Property is a Link property type (holds an ID which refers to a Node).
static int LONG
          A Constant to define if the Property is a Long data type.
static int NESTED
          A Constant to define if the Property is a nested type.
static String NESTED_DELIMITER
          The delimiter used for nested property names.
static int STRING
          A Constant to define if the Property is a String data type.
static int UNDEFINED
          If a Property's type is not set, it will be set to this by default.
 
Fields inherited from class com.bea.content.ContentEntity
id
 
Constructor Summary
Property(ID id, String name, int type, Value[] values)
          Constructor with all values.
Property(String name)
          Constructor with just the name.
Property(String name, Value value)
          Constructor for a single value without type.
Property(String name, Value[] values)
          Constructor for multiple values without type.
 
Method Summary
 void addValue(Value value)
          Add a value to the current list of values
 Object clone()
          Clones a property and its values.
 String getIndexedName()
          Returns the indexed name of the Property.
 String getName()
          Returns the name of the Property.
 int getType()
          Gets the type of the Property.
 Value getValue()
          Gets the first Value.
 Value[] getValues()
          Returns an Array of the Property's Values.
 boolean hasValue()
          Returns true if getValues() contains an instance of Value in the array.
 boolean isDirty()
          Returns true when the value(s) for this property have change since construction.
 void setName(String name)
          Sets the name of the property that is unique to the Node.
 void setType(int type)
          Sets the type of the Property.
 void setValue(Value value)
          Sets a Value for the Property.
 void setValues(Value[] values)
          Sets the properties values.
 String toPrintString()
          Returns the Property name and values as a String in the format name: value1, value2, value3, along with the property id.
 String toString()
          Returns the Property name and values as a String in the format name: value1, value2, value3
 boolean valuesEqual(Value[] otherValues)
          Compares property's values against a value array.
 
Methods inherited from class com.bea.content.ContentEntity
getId, setId
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

UNDEFINED

public static final int UNDEFINED
If a Property's type is not set, it will be set to this by default.

See Also
Constants Summary

BOOLEAN

public static final int BOOLEAN
A Constant to define if the Property is a Boolean data type.

See Also
Constants Summary

LONG

public static final int LONG
A Constant to define if the Property is a Long data type.

See Also
Constants Summary

DOUBLE

public static final int DOUBLE
A Constant to define if the Property is a Double data type.

See Also
Constants Summary

STRING

public static final int STRING
A Constant to define if the Property is a String data type.

See Also
Constants Summary

CALENDAR

public static final int CALENDAR
A Constant to define if the Property is a Calendar data type.

See Also
Constants Summary

BINARY

public static final int BINARY
A Constant to define if the Property is a Binary data type.

See Also
Constants Summary

NESTED

public static final int NESTED
A Constant to define if the Property is a nested type. If constructing a Property of nested type, the Value should be of a nested type.

For example: Property myProperty = new Property("myNestedProp", myNestedValue); The parameter "myNestedProp" is the name of the nested Property, which nests the properties of the ObjectClass that it represents. The parameter myNestedValue is an array of Property objects. These Property objects contain the properties and values from the nested ObjectClass.

See Also
Constants Summary

LINK

public static final int LINK
A Constant to define if the Property is a Link property type (holds an ID which refers to a Node).

See Also
Constants Summary

NESTED_DELIMITER

public static final String NESTED_DELIMITER
The delimiter used for nested property names.

See Also
Constants Summary
Constructor Detail

Property

public Property(String name)
Constructor with just the name. This may be used when creating a property whose type is defined by the PropertyDefinition.

Parameters
name - - the unique name (relative to the Node) of this Property.

Property

public Property(String name,
                Value value)
Constructor for a single value without type. After using this constructor a call to getValue will return the value passed in. A call to getValues will return an array of size one with this value at [0]. This may be used when creating a property whose type is defined by the PropertyDefinition.

Parameters
name - - the unique name (relative to the Node) of this Property.
value - - the value for this Property.

Property

public Property(String name,
                Value[] values)
Constructor for multiple values without type. This may be used when creating a property whose type is defined by the PropertyDefinition.

Parameters
name - - the unique name (relative to the Node) of this Property.
values - - the array of values for this Property.

Property

public Property(ID id,
                String name,
                int type,
                Value[] values)
Constructor with all values.

Parameters
id - - the id for this Property.
name - - the unique name (relative to the Node) of this Property.
type - - the type of this Property.
values - - the array of values for this Property.
Method Detail

getName

public String getName()
Returns the name of the Property. This name is unique to the Node. If this is a nested type, the name will reflect the nested hierarchy with NESTED_DELIMITER between each parent and child property name. The delimiter is not valid for use within the actual name, only to seperate the parent/child names.

Returns
The property name.

setName

public void setName(String name)
Sets the name of the property that is unique to the Node. If this is a nested type, the name will reflect the nested hierarchy with NESTED_DELIMITER between each parent and child property name. The delimiter is not valid for use within the actual name, only to seperate the parent/child names.

Parameters
name - The property name.

getIndexedName

public String getIndexedName()
Returns the indexed name of the Property. This name is unique to the Node. This name is only used for multivalued nested types, to show the indexed order and be able to uniquely identify each property, ie person.addresses[0].city, where addresses is the multivalued nested type. The indexedName will be populated when the Property is retrieved from the DB, which means that it will not exist until after it is persisted for the first time.

Returns
The indexed name.

getType

public int getType()
Gets the type of the Property.

Returns
The property type.

setType

public void setType(int type)
Sets the type of the Property.

Parameters
type - The property type.

getValue

public Value getValue()
Gets the first Value. Useful for single value Property.

Returns
The property value.

getValues

public Value[] getValues()
Returns an Array of the Property's Values.

Returns
An array of the property's values.

setValues

public void setValues(Value[] values)
Sets the properties values.

Parameters
values - The properties values.

setValue

public void setValue(Value value)
Sets a Value for the Property.

Parameters
value - The property value.

addValue

public void addValue(Value value)
Add a value to the current list of values

Parameters
value - The property value to add.

hasValue

public boolean hasValue()
Returns true if getValues() contains an instance of Value in the array.

Returns
True if getValue() contains a value.

valuesEqual

public boolean valuesEqual(Value[] otherValues)
Compares property's values against a value array. Returns true if they are equal. This method will not return the correct value if the property value is binary.

Returns
True if the values are equivalent.

toString

public String toString()
Returns the Property name and values as a String in the format name: value1, value2, value3

Overrides:
toString in class ContentEntity

toPrintString

public String toPrintString()
Returns the Property name and values as a String in the format name: value1, value2, value3, along with the property id.

Returns
The printable version of this object.

isDirty

public boolean isDirty()
Returns true when the value(s) for this property have change since construction.

Returns
true if dirty.

clone

public Object clone()
             throws CloneNotSupportedException
Clones a property and its values. Note that binary value streams of propert values are not cloned, but merely copied.

Overrides:
clone in class Object
Returns
A clone of the property.
Throws
CloneNotSupportedException - If the clone fails.


Copyright © 2006 BEA Systems, Inc. All Rights Reserved