Interface ItemDefinition
-
- All Known Subinterfaces:
NodeDefinition
,NodeDefinitionTemplate
,PropertyDefinition
,PropertyDefinitionTemplate
- All Known Implementing Classes:
NodeDefinitionImpl
,PropertyDefinitionImpl
public interface ItemDefinition
Superclass ofNodeDefinition
andPropertyDefinition
.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description NodeType
getDeclaringNodeType()
Gets the node type that contains the declaration of thisItemDefinition
.java.lang.String
getName()
Gets the name of the child item.int
getOnParentVersion()
Gets theOnParentVersion
status of the child item.boolean
isAutoCreated()
Reports whether the item is to be automatically created when its parent node is created.boolean
isMandatory()
Reports whether the item is mandatory.boolean
isProtected()
Reports whether the child item is protected.
-
-
-
Method Detail
-
getDeclaringNodeType
NodeType getDeclaringNodeType()
Gets the node type that contains the declaration of thisItemDefinition
.In implementations that support node type registration an
ItemDefinition
object may be acquired (in the form of aNodeDefinitionTemplate
orPropertyDefinitionTemplate
) that is not attached to a liveNodeType
. In such cases this method returnsnull
.- Returns:
- a
NodeType
object.
-
getName
java.lang.String getName()
Gets the name of the child item. If"*"
, thisItemDefinition
defines a residual set of child items. That is, it defines the characteristics of all those child items with names apart from the names explicitly used in other child item definitions.In implementations that support node type registration, if this
ItemDefinition
object is actually a newly-created emptyPropertyDefinitionTemplate
orNodeDefinitionTemplate
, then this method will returnnull
.- Returns:
- a
String
denoting the name or"*"
.
-
isAutoCreated
boolean isAutoCreated()
Reports whether the item is to be automatically created when its parent node is created. Iftrue
, then thisItemDefinition
will necessarily not be a residual set definition but will specify an actual item name (in other words getName() will not return "*").An autocreated non-protected item must be created immediately when its parent node is created in the transient session space. Creation of autocreated non-protected items is never delayed until
save
.An autocreated protected item should be created immediately when its parent node is created in the transient session space. Creation of autocreated protected items should not be delayed until
save
, though doing so does not violate JCR compliance.In implementations that support node type registration, if this
ItemDefinition
object is actually a newly-created emptyPropertyDefinitionTemplate
orNodeDefinitionTemplate
, then this method will returnfalse
.- Returns:
- a
boolean
.
-
isMandatory
boolean isMandatory()
Reports whether the item is mandatory. A mandatory item is one that, if its parent node exists, must also exist.This means that a mandatory single-value property must have a value (since there is no such thing a
null
value). In the case of multi-value properties this means that the property must exist, though it can have zero or more values.An attempt to save a node that has a mandatory child item without first creating that child item will throw a
ConstraintViolationException
onsave
.In implementations that support node type registration, if this
ItemDefinition
object is actually a newly-created emptyPropertyDefinitionTemplate
orNodeDefinitionTemplate
, then this method will returnfalse
.An item definition cannot be both residual and mandatory.
- Returns:
- a
boolean
-
getOnParentVersion
int getOnParentVersion()
Gets theOnParentVersion
status of the child item. This governs what occurs (in implementations that support versioning) when the parent node of this item is checked-in. One of:OnParentVersionAction.COPY
OnParentVersionAction.VERSION
OnParentVersionAction.IGNORE
OnParentVersionAction.INITIALIZE
OnParentVersionAction.COMPUTE
OnParentVersionAction.ABORT
In implementations that support node type registration, if this
ItemDefinition
object is actually a newly-created emptyPropertyDefinitionTemplate
orNodeDefinitionTemplate
, then this method will returnOnParentVersionAction.COPY
.- Returns:
- a
int
constant member ofOnParentVersionAction
.
-
isProtected
boolean isProtected()
Reports whether the child item is protected. In level 2 implementations, a protected item is one that cannot be removed (except by removing its parent) or modified through the the standard write methods of this API (that is,Item.remove
,Node.addNode
,Node.setProperty
andProperty.setValue
).A protected node may be removed or modified (in a level 2 implementation), however, through some mechanism not defined by this specification or as a side-effect of operations other than the standard write methods of the API.
In implementations that support node type registration, if this
ItemDefinition
object is actually a newly-created emptyPropertyDefinitionTemplate
orNodeDefinitionTemplate
, then this method will returnfalse
.- Returns:
- a
boolean
.
-
-