Copyright© 2008-2022 Sitevision AB, all rights reserved.
@Requireable(value="NodeResolverUtil") public interface NodeResolverUtil
Modifier and Type | Method and Description |
---|---|
Resolver<Node,Calendar> |
getCollaborationCalendarResolver()
Gets the Calendar resolver for Collaboration-related nodes.
|
Resolver<Node,Date> |
getCollaborationDateResolver()
Gets the Date resolver for Collaboration-related nodes.
|
Resolver<Node,Locale> |
getLocaleResolver()
Gets the Locale resolver for nodes.
|
Resolver<Node,List<Node>> |
getTagGroupsResolver()
Gets the sv:tagGroup resolver for nodes.
|
Resolver<Node,List<Node>> |
getTagsResolver()
Gets the sv:tag resolver for nodes.
|
Resolver<Node,Calendar> |
getVersionedCalendarResolver()
Gets the versioned Calendar resolver for nodes.
|
Resolver<Node,Date> |
getVersionedDateResolver()
Gets the versioned Date resolver for nodes.
|
Resolver<Node,Calendar> getCollaborationCalendarResolver()
This is a convenience resolver that uses the getCollaborationDateResolver()
to resolve a Date
from a Node
and then convert it to a Calendar
.
Note! Calendar
implements Comparable
so this resolver can be used
to get a Comparator
using NodeComparatorUtil.getResolverComparator(Resolver)
.
getCollaborationDateResolver()
Resolver<Node,Date> getCollaborationDateResolver()
Types
The Date value will be resolved differently for different node types.
For some types it will potentially do multiple checks and return the first found of them
(i.e. first check that has a non-null Date value).
sv:userIdentity
sv:collaborationGroup
sv:collaborationGroupPage
of the group was last published.sv:collaborationGroupPage
of the group was last modified.sv:collaborationGroupPage
of the group was created.sv:collaborationGroupPage
sv:collaborationGroup
of the collaboration group page had it's last activity
e.g. new entry or a modified file.
sv:collaborationGroupTemplate
sv:collaborationGroupFolder
This resolver also supports some non-collaboration node types:
sv:page
, sv:article
, sv:sitePage
, sv:link
, sv:template
,
sv:structurePage
, sv:structureLink
sv:image
, sv:file
, sv:folder
, sv:structureFolder
Unsupported node types will resolve to null
.
Example
This server-side Javascript code demonstrates how to get the "last updated" Date from av sv:collaborationGroup.
// Use NodeResolverUtil to get the Date resolver for Collaboration Nodes
var nodeResolverUtil = require('NodeResolverUtil'),
collaborationDateResolver = nodeResolverUtil.getCollaborationDateResolver(),
collaborationGroup,
lastUpdated;
// Get the sv:collaborationGroup Node...
collaborationGroup = ...
// Use the resolver to get (i.e. resolve) the "last updated" Date of the Collaboration group
lastUpdated = collaborationDateResolver.resolve(collaborationGroup);
Sorting tip!
Date
implements Comparable
so this resolver can be used
to get a Comparator
using NodeComparatorUtil.getResolverComparator(Resolver)
.
This resolver and the resolver comparator can be helpful when you want to sort a collection of
sv:collaborationGroup
nodes in "most active" order.
Resolver<Node,Calendar> getVersionedCalendarResolver()
This is a convenience resolver that uses the getVersionedDateResolver()
to resolve a Date
from a Node
and then convert it to a Calendar
.
Note! Calendar
implements Comparable
so this resolver can be used
to get a Comparator
using NodeComparatorUtil.getResolverComparator(Resolver)
.
getVersionedDateResolver()
Resolver<Node,Date> getVersionedDateResolver()
Types and versions
The Date value will be resolved differently for different node types in different versions.
For some types it will potentially do multiple checks and return the first found of them
(i.e. first check that has a non-null Date value).
Date resolve in the VersionUtil.ONLINE_VERSION
:
sv:page
, sv:article
, sv:sitePage
, sv:link
, sv:template
,
sv:collaborationGroupPage
, sv:collaborationGroupTemplate
,
sv:structurePage
, sv:structureLink
sv:collaborationGroup
sv:collaborationGroupPage
of the group was last published.sv:collaborationGroupPage
of the group was last modified.sv:collaborationGroupPage
of the group was created.sv:file
, sv:image
, sv:folder
, sv:structureFolder
Date resolve in the VersionUtil.OFFLINE_VERSION
:
sv:page
, sv:article
, sv:sitePage
, sv:link
, sv:template
,
sv:file
, sv:image
, sv:folder
,
sv:collaborationGroupPage
, sv:collaborationGroupTemplate
,
sv:structurePage
, sv:structureLink
, sv:structureFolder
sv:collaborationGroup
sv:collaborationGroupPage
of the group was last modified.sv:collaborationGroupPage
of the group was created.
Unsupported node types will resolve to null
.
Sorting tip!
Date
implements Comparable
so this resolver can be used
to get a Comparator
using NodeComparatorUtil.getResolverComparator(Resolver)
.
This resolver and the resolver comparator can be helpful when you want to sort nodes by time.
Resolver<Node,Locale> getLocaleResolver()
The Locale value will be resolved differently for different node types:
sv:page
, sv:article
, sv:template
, sv:sitePage
,
sv:structurePage
, sv:collaborationGroupPage
, sv:collaborationGroupTemplate
,
sv:link
, sv:structureLink
,
sv:folder
, sv:structureFolder
, sv:collaborationGroupFolder
sv:archive
,
sv:applicationIndex
, sv:nodeIndex
sv:collaborationGroup
sv:collaborationGroupPage
of the group.
Unsupported node types will resolve to null
.
PortletContextUtil.getCurrentLocale()
Resolver<Node,List<Node>> getTagsResolver()
The list of tags can be resolved for different node types:
sv:page
, sv:article
, sv:file
, sv:image
,
sv:sitePage
, sv:collaborationGroupPage
sv:timelineEntry
, sv:timelineWallEntry
, sv:timelineFileEntry
,
sv:timelineFileWallEntry
, sv:timelineShareEntry
, sv:timelineSharePageEntry
sv:comment
, sv:pageComment
sv:tagGroup
sv:tagGroupRepository
Unsupported node types will resolve to an empty list (unmodifiable), i.e. the resolver will never return null.
Note! The resolved list is not explicitly sorted. The tags will typically be in insertion order.
Example
This server-side Javascript code demonstrates how to get all tags that belong to a sv:tagGroup, sorted by the tag name.
// Resolves and returns a List of sv:tag from a given Node
function getAllTagsFrom(from) {
var nodeResolverUtil = require('NodeResolverUtil'),
tagResolver = nodeResolverUtil.getTagsResolver();
return tagResolver.resolve(from);
}
// Sorts a List of sv:tag by the tag names in ascending order
function sortTagList(tagList) {
var nodeComparatorUtil = require('NodeComparatorUtil'),
collectionsInstance = require('CollectionsInstance'),
tagNameComparator;
tagNameComparator = nodeComparatorUtil.getPropertyComparator('tagName');
collectionsInstance.sort(tagList, tagNameComparator);
}
var resourceLocatorUtil = require('ResourceLocatorUtil'),
tagGroupsRepository,
tags;
tagGroupsRepository = resourceLocatorUtil.getTagGroupRepository();
tags = getAllTagsFrom(tagGroupsRepository);
if (tags.size() > 1) {
sortTagList(tags);
}
Resolver<Node,List<Node>> getTagGroupsResolver()
The list of tag groups can be resolved for different node types:
sv:tag
sv:tagGroupRepository
sv:sitePage
, sv:page
, sv:folder
, sv:archive
,
sv:article
, sv:file
, sv:image
, sv:collaborationGroupFolder
,
sv:collaborationGroupPage
, sv:userField
(of type TAGS),
sv:metadataMultipleTagDefinition
, sv:metadataSingleTagDefinition
Unsupported node types will resolve to an empty list (unmodifiable), i.e. the resolver will never return null.
Note! The resolved list is not explicitly sorted. The tag groups will typically be in insertion order.
Sitevision - Portal and Content Management Made Easy
Sitevision is an advanced Java enterprise portal product and a portlet container (JSR 286) that implements Java Content Repository (JSR 283).
Copyright© 2008-2022 Sitevision AB, all rights reserved.