Class AbstractReadableRepositoryService

  • All Implemented Interfaces:
    RepositoryService

    public abstract class AbstractReadableRepositoryService
    extends AbstractRepositoryService
    AbstractReadableRepositoryService provides an abstract base class where all methods that attempt to write throw an UnsupportedRepositoryOperationException. This class useful for repository service implementation that only provide read access to the underlying content.
    • Constructor Detail

      • AbstractReadableRepositoryService

        public AbstractReadableRepositoryService​(java.util.Map<java.lang.String,​QValue[]> descriptors,
                                                 java.util.Map<java.lang.String,​java.lang.String> namespaces,
                                                 java.io.Reader cnd,
                                                 java.util.List<java.lang.String> wspNames,
                                                 java.lang.String defaultWsp)
                                          throws javax.jcr.RepositoryException,
                                                 ParseException,
                                                 java.lang.IllegalArgumentException
        Creates a new AbstractReadableRepositoryService.
        Parameters:
        descriptors - the repository descriptors. Maps descriptor keys to descriptor values.
        namespaces - the namespaces. Maps namespace prefixes to namespace URIs.
        cnd - a reader on the compact node type definition.
        wspNames - a list of workspace names.
        defaultWsp - name of the default workspace
        Throws:
        javax.jcr.RepositoryException - if the namespace mappings are invalid.
        ParseException - if an error occurs while parsing the CND.
        java.lang.IllegalArgumentException - if defaultWsp is null
    • Method Detail

      • getNodeInfo

        public NodeInfo getNodeInfo​(SessionInfo sessionInfo,
                                    NodeId nodeId)
                             throws javax.jcr.ItemNotFoundException,
                                    javax.jcr.RepositoryException
        This default implementation returns the first item returned by the call to RepositoryService.getItemInfos(SessionInfo, ItemId). The underlying assumption here is that the implementation and the persistence layer are optimized for batch reading. That is, a call to getItemInfos is no more expensive than retrieving the single NodeInfo only. If this assumption does not hold, subclasses should override this method.
        Returns:
        The NodeInfo for the node identified by the given id.
        Throws:
        javax.jcr.ItemNotFoundException
        javax.jcr.RepositoryException
        See Also:
        Session.getItem(String), Node.getNode(String), VersionHistory.getAllVersions(), VersionHistory.getVersion(String), VersionHistory.getVersionByLabel(String), VersionHistory.getRootVersion(), Node.getBaseVersion(), Node.getVersionHistory(), Version.getContainingHistory()
      • getWorkspaceNames

        public java.lang.String[] getWorkspaceNames​(SessionInfo sessionInfo)
                                             throws javax.jcr.RepositoryException
        This default implementation first calls AbstractRepositoryService.checkSessionInfo(SessionInfo) with the sessionInfo, then returns the workspaces that were passed to the constructor of this repository service.
        Returns:
        An array of workspace names.
        Throws:
        javax.jcr.RepositoryException
        See Also:
        Workspace.getAccessibleWorkspaceNames(), Workspace.getName()
      • isGranted

        public boolean isGranted​(SessionInfo sessionInfo,
                                 ItemId itemId,
                                 java.lang.String[] actions)
                          throws javax.jcr.RepositoryException
        This default implementation first calls AbstractRepositoryService.checkSessionInfo(SessionInfo) with the sessionInfo, then returns false if the any of the actions are in WRITE_ACTIONS; otherwise returns true.
        Returns:
        true if the session with the given SessionInfo has the specified rights for the given item.
        Throws:
        javax.jcr.RepositoryException
        See Also:
        Session.checkPermission(String, String), Session.hasPermission(String, String)