Class AbstractResource
- All Implemented Interfaces:
Serializable
,Resource
Resource
representation.- See Also:
-
Constructor Summary
ConstructorDescriptionAbstractResource
(String resourceType) Construct resource representation by using resource type name.AbstractResource
(String resourceType, String name) Constructs resource representation by using resource type name and resource name.AbstractResource
(Resource parent, String resourceType, String name) Constructs resource representation by using parent resoruce representation, resource type name and resource name. -
Method Summary
Modifier and TypeMethodDescriptionprotected static <T> T
convertValueOfBasicType
(Object value, Class<T> expectedType) Convert thevalue
of a basic type to one of theexpectedType
.long
Returns child resource count of this resource representation.Return aResourceCollection
of child resource representations.Resolves the default property value of this resource if available, or null if unavailable.<T> T
getDefaultValue
(Class<T> type) Resolves the default property value of this resource if available and converts it into the given type, or null if unavailable.getName()
Returns the name of this resource representation if there's any.Return the underlying, internal node data that thisResource
represents.Returns parent resource representation if there's any.getPath()
Returns the path of this resource representation if there's any.Returns the resource type name of this resource representation if there's any.Resolves a property value of this resource by the givenrelPath
.<T> T
Resolves a property value of this resource by the givenrelPath
and converts it into the given type.boolean
Returns true if this resource representation contains any child resource representation.boolean
isArray()
Returns true if this resource representation is purely for an array (e.g, JSON Array if underlying data is based on JSON).boolean
isResourceType
(String resourceType) Returns true if this resource representation is typed and of the specificresourceType
name.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.onehippo.cms7.crisp.api.resource.Resource
dump, getChildren, getMetadata, getValueMap
-
Constructor Details
-
AbstractResource
Construct resource representation by using resource type name.- Parameters:
resourceType
- resource type name
-
AbstractResource
Constructs resource representation by using resource type name and resource name.- Parameters:
resourceType
- resource type namename
- resource name
-
AbstractResource
Constructs resource representation by using parent resoruce representation, resource type name and resource name.- Parameters:
parent
- parent resource representationresourceType
- resource type namename
- resource name
-
-
Method Details
-
convertValueOfBasicType
Convert thevalue
of a basic type to one of theexpectedType
.- Parameters:
value
- the input value of a basic typeexpectedType
- the expected type to convert to- Returns:
- Converted value of the
expectedType
-
getResourceType
Returns the resource type name of this resource representation if there's any. For example, a JSON data based implementation may return '@type' property based on its domain rules, or a JCR based implementation may simply returnjavax.jcr.Node#getPrimaryNodeType().getName()
.- Specified by:
getResourceType
in interfaceResource
- Returns:
- the resource type name of this resource representation if there's any
-
isResourceType
Returns true if this resource representation is typed and of the specificresourceType
name.- Specified by:
isResourceType
in interfaceResource
- Parameters:
resourceType
- resource type name- Returns:
- true if this resource representation is typed and of the specific
resourceType
name
-
getName
Returns the name of this resource representation if there's any. For example, a JSON data based implementation may return '@name' property based on its domain rules, or a JCR based implementation may simply returnjavax.jcr.Item#getName()
. -
getPath
Returns the path of this resource representation if there's any. For example, a JSON data based implementation may construct an XPath-like path based on object hierarchy, or a JCR based implementation may simply returnjavax.jcr.Item#getPath()
. -
getParent
Returns parent resource representation if there's any. -
isAnyChildContained
public boolean isAnyChildContained()Returns true if this resource representation contains any child resource representation.- Specified by:
isAnyChildContained
in interfaceResource
- Returns:
- true if this resource representation contains any child resource representation
-
isArray
public boolean isArray()Returns true if this resource representation is purely for an array (e.g, JSON Array if underlying data is based on JSON). -
getChildCount
public long getChildCount()Returns child resource count of this resource representation.- Specified by:
getChildCount
in interfaceResource
- Returns:
- child resource count of this resource representation
-
getChildren
Return aResourceCollection
of child resource representations.- Specified by:
getChildren
in interfaceResource
- Returns:
- a
ResourceCollection
of child resource representations
-
getValue
Resolves a property value of this resource by the givenrelPath
. Or null if not resolved by therelPath
.If
relPath
is a relative value path, like"content/title"
, then the return should be equivalent to the result of the call,((Resource) getValueMap().get("content")).getValueMap().get("title")
if existing.In addition, a path segment may contain an array index notation like
"content/images[1]/title"
. In this case, the value atcontent/images
must be an array typeResource
object which returns true onResource.isArray()
. -
getValue
Resolves a property value of this resource by the givenrelPath
and converts it into the given type. Or null if not resolved by therelPath
.If
relPath
is a relative value path, like"content/title"
, then the return should be equivalent to the result of the call,((Resource) getValueMap().get("content")).getValueMap().get("title")
if existing.In addition, a path segment may contain an array index notation like
"content/images[1]/title"
. In this case, the value atcontent/images
must be an array typeResource
object which returns true onResource.isArray()
. -
getDefaultValue
Resolves the default property value of this resource if available, or null if unavailable. The default value resolution totally depends on the implementations. For example, an XML element based implementation may choose to return the text content of the underlying element.This default implementation is equivalent to
getValueMap().get("")
if not overriden.- Specified by:
getDefaultValue
in interfaceResource
- Returns:
- the default property value of this resource if available, or null if unavailable
-
getDefaultValue
Resolves the default property value of this resource if available and converts it into the given type, or null if unavailable. The default value resolution totally depends on the implementations. For example, an XML element based implementation may choose to return the text content of the underlying element.This default implementation is equivalent to
getValueMap().get("", type)
if not overriden.- Specified by:
getDefaultValue
in interfaceResource
- Returns:
- the default property value of this resource if available, or null if unavailable
-
getNodeData
Description copied from interface:Resource
Return the underlying, internal node data that thisResource
represents.WARNING: This method is for experts only who understands the risk of accessing the underlying internal, node data, and who is willing to change and upgrade their applications if the type of the underlying, internal data changes at any time in the future. The return object and its type of the underlying, internal data is not guaranteed in the future versions because this method is really implementation specific.
NOTE: The return of this method is really implementation specific. If a underlying
ResourceResolver
maintains a Jackson node object for aResource
object, then it might support this method by returning the Jackson node or just returnnull
when it doesn't support this method.- Specified by:
getNodeData
in interfaceResource
- Returns:
- the underlying node data if supported by the underlying
ResourceResolver
ornull
otherwise.
-