|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
A property definition. Used in node type definitions.
| Method Summary | |
Value[] |
getDefaultValues()
Gets the default value(s) of the property. |
int |
getRequiredType()
Gets the required type of the property. |
java.lang.String[] |
getValueConstraints()
Gets the array of constraint strings. |
boolean |
isMultiple()
Reports whether this property can have multiple values. |
| Methods inherited from interface javax.jcr.nodetype.ItemDefinition |
getDeclaringNodeType, getName, getOnParentVersion, isAutoCreated, isMandatory, isProtected |
| Method Detail |
public int getRequiredType()
PropertyType.STRINGPropertyType.DATEPropertyType.BINARYPropertyType.DOUBLEPropertyType.LONGPropertyType.BOOLEANPropertyType.NAMEPropertyType.PATHPropertyType.REFERENCEPropertyType.UNDEFINEDPropertyType.UNDEFINED is returned if this property may be
of any type.
public java.lang.String[] getValueConstraints()
["constraint1", "constraint2",
"constraint3"] has the interpretation: "the value of this property must
meet either constraint1, constraint2 or constraint3".
Reporting of value constraints is optional. An implementation may return
null, indicating that value constraint information is unavailable
(though a constraint may still exist).
In the case of multi-value properties, the constraint string array returned applies to all the values of the property.
The constraint strings themselves having differing formats and interpretations depending on the type of the property in question. The following describes the value constraint syntax for each property type:
STRING: The constraint string is a regular expression pattern. For example the
regular expression ".*" means "any string, including the empty string". Whereas
a simple literal string (without any RE-specific meta-characters) like "banana"
matches only the string "banana".
PATH: The constraint string is a JCR path with an optional "*" character after
the last "/" character. For example, possible constraint strings for a property
of type PATH include:
/myapp:products/myapp:televisions"
/myapp:products/myapp:televisions/"
/myapp:products/*"
myapp:products/myapp:televisions"
../myapp:televisions"
../myapp:televisions/*"
/a/* does not match /a/../c.
The constraint must match the normalized path.
/" has no effect (hence, 1 and 2, above, are equivalent).
*" character means that the value of the PATH property is
restricted to the indicated subtree (in other words any additional relative path
can replace the "*"). For example, 3, above would allow
/myapp:products/myapp:radios, /myapp:products/myapp:microwaves/X900, and so
forth.
*" means that the PATH property is restricted to that
precise path. For example, 1, above, would allow only the value
/myapp:products/myapp:televisions.
/" character. 1 and 4, above for
example, are distinct.
Session
(i.e., the current state of the namespace registry overlaid with any
session-specific mappings). Constraint strings for PATH properties should be
stored in fully-qualified form (using the actual URI instead of the prefix) and
then be converted to prefix form according to the current mapping upon the
PropertyDefinition.getValueConstraints call.
NAME: The constraint string is a JCR name in prefix form. For example
"myapp:products". No wildcards or other pattern matching are supported. As with
PATH properties, the string returned must reflect the namespace mapping in the
current Session. Constraint strings for NAME properties should be stored in
fully-qualified form (using the actual URI instead of the prefix) and then be
converted to prefix form according to the current mapping.
REFERENCE: The constraint string is a JCR name in prefix form. This name is
interpreted as a node type name and the REFERENCE property is restricted to
referring only to nodes that have at least the indicated node type. For
example, a constraint of "mytype:document" would indicate that the REFERENCE
property in question can only refer to nodes that have at least the node type
mytype:document (assuming this was the only constraint returned in the array,
recall that the array of constraints are to be "OR-ed" together). No wildcards or other
pattern matching are supported. As with PATH properties, the string returned
must reflect the namespace mapping in the current Session. Constraint strings
for REFERENCE properties should be stored in fully-qualified form (using the
actual URI instead of the prefix) and then be converted to prefix form according to the
current mapping.
BOOLEAN: Either "true" or "false".
[min, max]", "(min, max)",
"(min, max]" or "[min, max)". Where "["
and "]" indicate "inclusive", while "(" and ")"
indicate "exclusive". A missing min or max value
indicates no bound in that direction. For example [,5] means no minimum but a
maximum of 5 (inclusive) while [,] means simply that any value will suffice,
The meaning of the min and max values themselves
differ between types as follows:
BINARY: min and max specify the allowed
size range of the binary value in bytes.
DATE: min and max are dates specifying the
allowed date range. The date strings must be in the ISO8601-compliant format:
YYYY-MM-DDThh:mm:ss.sssTZD.
LONG, DOUBLE: min and max are numbers.
String array.public Value[] getDefaultValues()
ItemDefinition.isAutoCreated()
returns true).
This method returns an array of Value objects. If the property is multi-valued, then this array represents the full set of values that the property will be assigned upon being auto-created. Note that this could be the empty array. If the property is single-valued, then the array returned will be of size 1.
Ifnull is returned, then the property has no fixed default value.
This does not exclude the possibility that the property still assumes some
value automatically, but that value may be parameterized (for example,
"the current date") and hence not expressable as a single fixed value.
In particular, this must be the case if isAutoCreated
returns true and this method returns null.
Value objects.public boolean isMultiple()
isMultiple flag is special in that a given node type may
have two property definitions that are identical in every respect except
for the their isMultiple status. For example, a node type
can specify two string properties both called X, one of
which is multi-valued and the other not.
boolean
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||