Class DavResourceImpl

  • All Implemented Interfaces:
    org.apache.jackrabbit.JcrConstants, org.apache.jackrabbit.webdav.bind.BindableResource, org.apache.jackrabbit.webdav.DavResource
    Direct Known Subclasses:
    DeltaVResourceImpl

    public class DavResourceImpl
    extends Object
    implements org.apache.jackrabbit.webdav.DavResource, org.apache.jackrabbit.webdav.bind.BindableResource, org.apache.jackrabbit.JcrConstants
    DavResourceImpl implements a DavResource.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static String COMPLIANCE_CLASSES  
      static String METHODS  
      protected org.apache.jackrabbit.webdav.property.DavPropertySet properties  
      protected boolean propsInitialized  
      • Fields inherited from interface org.apache.jackrabbit.JcrConstants

        JCR_AUTOCREATED, JCR_BASEVERSION, JCR_CHILD, JCR_CHILDNODEDEFINITION, JCR_CONTENT, JCR_CREATED, JCR_DATA, JCR_DEFAULTPRIMARYTYPE, JCR_DEFAULTVALUES, JCR_ENCODING, JCR_FROZENMIXINTYPES, JCR_FROZENNODE, JCR_FROZENPRIMARYTYPE, JCR_FROZENUUID, JCR_HASORDERABLECHILDNODES, JCR_ISCHECKEDOUT, JCR_ISMIXIN, JCR_LANGUAGE, JCR_LASTMODIFIED, JCR_LOCKISDEEP, JCR_LOCKOWNER, JCR_MANDATORY, JCR_MERGEFAILED, JCR_MIMETYPE, JCR_MIXINTYPES, JCR_MULTIPLE, JCR_NAME, JCR_NODETYPENAME, JCR_ONPARENTVERSION, JCR_PATH, JCR_PREDECESSORS, JCR_PRIMARYITEMNAME, JCR_PRIMARYTYPE, JCR_PROPERTYDEFINITION, JCR_PROTECTED, JCR_REQUIREDPRIMARYTYPES, JCR_REQUIREDTYPE, JCR_ROOTVERSION, JCR_SAMENAMESIBLINGS, JCR_SCORE, JCR_STATEMENT, JCR_SUCCESSORS, JCR_SUPERTYPES, JCR_SYSTEM, JCR_UUID, JCR_VALUECONSTRAINTS, JCR_VERSIONABLEUUID, JCR_VERSIONHISTORY, JCR_VERSIONLABELS, JCR_VERSIONSTORAGE, MIX_LOCKABLE, MIX_REFERENCEABLE, MIX_SHAREABLE, MIX_VERSIONABLE, NT_BASE, NT_CHILDNODEDEFINITION, NT_FILE, NT_FOLDER, NT_FROZENNODE, NT_HIERARCHYNODE, NT_LINKEDFILE, NT_NODETYPE, NT_PROPERTYDEFINITION, NT_QUERY, NT_RESOURCE, NT_UNSTRUCTURED, NT_VERSION, NT_VERSIONEDCHILD, NT_VERSIONHISTORY, NT_VERSIONLABELS
    • Constructor Summary

      Constructors 
      Constructor Description
      DavResourceImpl​(org.apache.jackrabbit.webdav.DavResourceLocator locator, org.apache.jackrabbit.webdav.DavResourceFactory factory, org.apache.jackrabbit.webdav.DavSession session, ResourceConfig config, boolean isCollection)
      Create a new DavResource.
      DavResourceImpl​(org.apache.jackrabbit.webdav.DavResourceLocator locator, org.apache.jackrabbit.webdav.DavResourceFactory factory, org.apache.jackrabbit.webdav.DavSession session, ResourceConfig config, Node node)
      Create a new DavResource.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addLockManager​(org.apache.jackrabbit.webdav.lock.LockManager lockMgr)  
      void addMember​(org.apache.jackrabbit.webdav.DavResource member, org.apache.jackrabbit.webdav.io.InputContext inputContext)
      Adds a new member to this resource.
      org.apache.jackrabbit.webdav.MultiStatusResponse alterProperties​(List<? extends org.apache.jackrabbit.webdav.property.PropEntry> changeList)  
      void bind​(org.apache.jackrabbit.webdav.DavResource collection, org.apache.jackrabbit.webdav.DavResource newBinding)  
      void copy​(org.apache.jackrabbit.webdav.DavResource destination, boolean shallow)  
      boolean exists()  
      org.apache.jackrabbit.webdav.DavResource getCollection()  
      String getComplianceClass()  
      String getDisplayName()
      Returns the the last segment of the resource path.
      protected ExportContext getExportContext​(org.apache.jackrabbit.webdav.io.OutputContext outputCtx)
      Returns a new ExportContext
      org.apache.jackrabbit.webdav.DavResourceFactory getFactory()  
      String getHref()  
      protected ImportContext getImportContext​(org.apache.jackrabbit.webdav.io.InputContext inputCtx, String systemId)
      Returns a new ImportContext
      org.apache.jackrabbit.webdav.DavResourceLocator getLocator()  
      org.apache.jackrabbit.webdav.lock.ActiveLock getLock​(org.apache.jackrabbit.webdav.lock.Type type, org.apache.jackrabbit.webdav.lock.Scope scope)  
      org.apache.jackrabbit.webdav.lock.ActiveLock[] getLocks()  
      org.apache.jackrabbit.webdav.DavResourceIterator getMembers()  
      long getModificationTime()  
      protected Node getNode()
      Returns the node that is wrapped by this resource.
      Set<org.apache.jackrabbit.webdav.bind.ParentElement> getParentElements()  
      org.apache.jackrabbit.webdav.property.DavPropertySet getProperties()  
      org.apache.jackrabbit.webdav.property.DavProperty<?> getProperty​(org.apache.jackrabbit.webdav.property.DavPropertyName name)  
      protected PropertyExportContext getPropertyExportContext()
      Returns a new PropertyExportContext.
      protected PropertyImportContext getPropertyImportContext​(List<? extends org.apache.jackrabbit.webdav.property.PropEntry> changeList)
      Returns a new PropertyImportContext.
      org.apache.jackrabbit.webdav.property.DavPropertyName[] getPropertyNames()  
      String getResourcePath()  
      org.apache.jackrabbit.webdav.DavSession getSession()  
      String getSupportedMethods()  
      boolean hasLock​(org.apache.jackrabbit.webdav.lock.Type type, org.apache.jackrabbit.webdav.lock.Scope scope)  
      protected void initProperties()
      Fill the set of properties
      boolean isCollection()  
      boolean isLockable​(org.apache.jackrabbit.webdav.lock.Type type, org.apache.jackrabbit.webdav.lock.Scope scope)  
      org.apache.jackrabbit.webdav.lock.ActiveLock lock​(org.apache.jackrabbit.webdav.lock.LockInfo lockInfo)  
      void move​(org.apache.jackrabbit.webdav.DavResource destination)  
      void rebind​(org.apache.jackrabbit.webdav.DavResource collection, org.apache.jackrabbit.webdav.DavResource newBinding)  
      org.apache.jackrabbit.webdav.lock.ActiveLock refreshLock​(org.apache.jackrabbit.webdav.lock.LockInfo lockInfo, String lockToken)  
      void removeMember​(org.apache.jackrabbit.webdav.DavResource member)  
      void removeProperty​(org.apache.jackrabbit.webdav.property.DavPropertyName propertyName)  
      void setProperty​(org.apache.jackrabbit.webdav.property.DavProperty<?> property)  
      void spool​(org.apache.jackrabbit.webdav.io.OutputContext outputContext)
      If this resource exists and the specified context is not null this implementation build a new ExportContext based on the specified context and forwards the export to its IOManager.
      void unlock​(String lockToken)  
    • Field Detail

      • COMPLIANCE_CLASSES

        public static final String COMPLIANCE_CLASSES
      • properties

        protected org.apache.jackrabbit.webdav.property.DavPropertySet properties
      • propsInitialized

        protected boolean propsInitialized
    • Constructor Detail

      • DavResourceImpl

        public DavResourceImpl​(org.apache.jackrabbit.webdav.DavResourceLocator locator,
                               org.apache.jackrabbit.webdav.DavResourceFactory factory,
                               org.apache.jackrabbit.webdav.DavSession session,
                               ResourceConfig config,
                               boolean isCollection)
                        throws org.apache.jackrabbit.webdav.DavException
        Create a new DavResource.
        Parameters:
        locator -
        factory -
        session -
        config -
        isCollection -
        Throws:
        org.apache.jackrabbit.webdav.DavException
      • DavResourceImpl

        public DavResourceImpl​(org.apache.jackrabbit.webdav.DavResourceLocator locator,
                               org.apache.jackrabbit.webdav.DavResourceFactory factory,
                               org.apache.jackrabbit.webdav.DavSession session,
                               ResourceConfig config,
                               Node node)
                        throws org.apache.jackrabbit.webdav.DavException
        Create a new DavResource.
        Parameters:
        locator -
        factory -
        session -
        config -
        node -
        Throws:
        org.apache.jackrabbit.webdav.DavException
    • Method Detail

      • getComplianceClass

        public String getComplianceClass()
        Specified by:
        getComplianceClass in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.getComplianceClass()
      • getSupportedMethods

        public String getSupportedMethods()
        Specified by:
        getSupportedMethods in interface org.apache.jackrabbit.webdav.DavResource
        Returns:
        DavResource#METHODS
        See Also:
        DavResource.getSupportedMethods()
      • exists

        public boolean exists()
        Specified by:
        exists in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        )
      • isCollection

        public boolean isCollection()
        Specified by:
        isCollection in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.isCollection()
      • getLocator

        public org.apache.jackrabbit.webdav.DavResourceLocator getLocator()
        Specified by:
        getLocator in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.getLocator()
      • getResourcePath

        public String getResourcePath()
        Specified by:
        getResourcePath in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.getResourcePath()
      • getHref

        public String getHref()
        Specified by:
        getHref in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.getHref()
      • getDisplayName

        public String getDisplayName()
        Returns the the last segment of the resource path.

        Note that this must not correspond to the name of the underlying repository item for two reasons:

        • SameNameSiblings have an index appended to their item name.
        • the resource path may differ from the item path.
        Using the item name as DAV:displayname caused problems with XP built-in client in case of resources representing SameNameSibling nodes.
        Specified by:
        getDisplayName in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.getDisplayName()
      • getModificationTime

        public long getModificationTime()
        Specified by:
        getModificationTime in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.getModificationTime()
      • spool

        public void spool​(org.apache.jackrabbit.webdav.io.OutputContext outputContext)
                   throws IOException
        If this resource exists and the specified context is not null this implementation build a new ExportContext based on the specified context and forwards the export to its IOManager. If the IOManager.exportContent(ExportContext, DavResource) fails, an IOException is thrown.
        Specified by:
        spool in interface org.apache.jackrabbit.webdav.DavResource
        Throws:
        IOException - if the export fails.
        See Also:
        DavResource.spool(OutputContext), ResourceConfig.getIOManager()
      • getProperty

        public org.apache.jackrabbit.webdav.property.DavProperty<?> getProperty​(org.apache.jackrabbit.webdav.property.DavPropertyName name)
        Specified by:
        getProperty in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.getProperty(org.apache.jackrabbit.webdav.property.DavPropertyName)
      • getProperties

        public org.apache.jackrabbit.webdav.property.DavPropertySet getProperties()
        Specified by:
        getProperties in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.getProperties()
      • getPropertyNames

        public org.apache.jackrabbit.webdav.property.DavPropertyName[] getPropertyNames()
        Specified by:
        getPropertyNames in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.getPropertyNames()
      • initProperties

        protected void initProperties()
        Fill the set of properties
      • setProperty

        public void setProperty​(org.apache.jackrabbit.webdav.property.DavProperty<?> property)
                         throws org.apache.jackrabbit.webdav.DavException
        Specified by:
        setProperty in interface org.apache.jackrabbit.webdav.DavResource
        Parameters:
        property -
        Throws:
        org.apache.jackrabbit.webdav.DavException
        See Also:
        DavResource.setProperty(org.apache.jackrabbit.webdav.property.DavProperty)
      • removeProperty

        public void removeProperty​(org.apache.jackrabbit.webdav.property.DavPropertyName propertyName)
                            throws org.apache.jackrabbit.webdav.DavException
        Specified by:
        removeProperty in interface org.apache.jackrabbit.webdav.DavResource
        Parameters:
        propertyName -
        Throws:
        org.apache.jackrabbit.webdav.DavException
        See Also:
        DavResource.removeProperty(org.apache.jackrabbit.webdav.property.DavPropertyName)
      • alterProperties

        public org.apache.jackrabbit.webdav.MultiStatusResponse alterProperties​(List<? extends org.apache.jackrabbit.webdav.property.PropEntry> changeList)
                                                                         throws org.apache.jackrabbit.webdav.DavException
        Specified by:
        alterProperties in interface org.apache.jackrabbit.webdav.DavResource
        Throws:
        org.apache.jackrabbit.webdav.DavException
      • getCollection

        public org.apache.jackrabbit.webdav.DavResource getCollection()
        Specified by:
        getCollection in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.getCollection()
      • getMembers

        public org.apache.jackrabbit.webdav.DavResourceIterator getMembers()
        Specified by:
        getMembers in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.getMembers()
      • addMember

        public void addMember​(org.apache.jackrabbit.webdav.DavResource member,
                              org.apache.jackrabbit.webdav.io.InputContext inputContext)
                       throws org.apache.jackrabbit.webdav.DavException
        Adds a new member to this resource.
        Specified by:
        addMember in interface org.apache.jackrabbit.webdav.DavResource
        Throws:
        org.apache.jackrabbit.webdav.DavException
        See Also:
        DavResource.addMember(DavResource, org.apache.jackrabbit.webdav.io.InputContext)
      • removeMember

        public void removeMember​(org.apache.jackrabbit.webdav.DavResource member)
                          throws org.apache.jackrabbit.webdav.DavException
        Specified by:
        removeMember in interface org.apache.jackrabbit.webdav.DavResource
        Throws:
        org.apache.jackrabbit.webdav.DavException
        See Also:
        DavResource.removeMember(DavResource)
      • move

        public void move​(org.apache.jackrabbit.webdav.DavResource destination)
                  throws org.apache.jackrabbit.webdav.DavException
        Specified by:
        move in interface org.apache.jackrabbit.webdav.DavResource
        Throws:
        org.apache.jackrabbit.webdav.DavException
        See Also:
        DavResource.move(DavResource)
      • copy

        public void copy​(org.apache.jackrabbit.webdav.DavResource destination,
                         boolean shallow)
                  throws org.apache.jackrabbit.webdav.DavException
        Specified by:
        copy in interface org.apache.jackrabbit.webdav.DavResource
        Throws:
        org.apache.jackrabbit.webdav.DavException
        See Also:
        DavResource.copy(DavResource, boolean)
      • isLockable

        public boolean isLockable​(org.apache.jackrabbit.webdav.lock.Type type,
                                  org.apache.jackrabbit.webdav.lock.Scope scope)
        Specified by:
        isLockable in interface org.apache.jackrabbit.webdav.DavResource
        Parameters:
        type -
        scope -
        Returns:
        true if type is Type.WRITE and scope is Scope.EXCLUSIVE
        See Also:
        DavResource.isLockable(org.apache.jackrabbit.webdav.lock.Type, org.apache.jackrabbit.webdav.lock.Scope)
      • hasLock

        public boolean hasLock​(org.apache.jackrabbit.webdav.lock.Type type,
                               org.apache.jackrabbit.webdav.lock.Scope scope)
        Specified by:
        hasLock in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.hasLock(org.apache.jackrabbit.webdav.lock.Type, org.apache.jackrabbit.webdav.lock.Scope)
      • getLock

        public org.apache.jackrabbit.webdav.lock.ActiveLock getLock​(org.apache.jackrabbit.webdav.lock.Type type,
                                                                    org.apache.jackrabbit.webdav.lock.Scope scope)
        Specified by:
        getLock in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.getLock(Type, Scope)
      • getLocks

        public org.apache.jackrabbit.webdav.lock.ActiveLock[] getLocks()
        Specified by:
        getLocks in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.getLocks()
      • lock

        public org.apache.jackrabbit.webdav.lock.ActiveLock lock​(org.apache.jackrabbit.webdav.lock.LockInfo lockInfo)
                                                          throws org.apache.jackrabbit.webdav.DavException
        Specified by:
        lock in interface org.apache.jackrabbit.webdav.DavResource
        Throws:
        org.apache.jackrabbit.webdav.DavException
        See Also:
        DavResource.lock(LockInfo)
      • refreshLock

        public org.apache.jackrabbit.webdav.lock.ActiveLock refreshLock​(org.apache.jackrabbit.webdav.lock.LockInfo lockInfo,
                                                                        String lockToken)
                                                                 throws org.apache.jackrabbit.webdav.DavException
        Specified by:
        refreshLock in interface org.apache.jackrabbit.webdav.DavResource
        Throws:
        org.apache.jackrabbit.webdav.DavException
        See Also:
        DavResource.refreshLock(LockInfo, String)
      • unlock

        public void unlock​(String lockToken)
                    throws org.apache.jackrabbit.webdav.DavException
        Specified by:
        unlock in interface org.apache.jackrabbit.webdav.DavResource
        Throws:
        org.apache.jackrabbit.webdav.DavException
        See Also:
        DavResource.unlock(String)
      • addLockManager

        public void addLockManager​(org.apache.jackrabbit.webdav.lock.LockManager lockMgr)
        Specified by:
        addLockManager in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.addLockManager(org.apache.jackrabbit.webdav.lock.LockManager)
      • getFactory

        public org.apache.jackrabbit.webdav.DavResourceFactory getFactory()
        Specified by:
        getFactory in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.getFactory()
      • getSession

        public org.apache.jackrabbit.webdav.DavSession getSession()
        Specified by:
        getSession in interface org.apache.jackrabbit.webdav.DavResource
        See Also:
        DavResource.getSession()
      • bind

        public void bind​(org.apache.jackrabbit.webdav.DavResource collection,
                         org.apache.jackrabbit.webdav.DavResource newBinding)
                  throws org.apache.jackrabbit.webdav.DavException
        Specified by:
        bind in interface org.apache.jackrabbit.webdav.bind.BindableResource
        Throws:
        org.apache.jackrabbit.webdav.DavException
        See Also:
        BindableResource.rebind(DavResource, DavResource)
      • rebind

        public void rebind​(org.apache.jackrabbit.webdav.DavResource collection,
                           org.apache.jackrabbit.webdav.DavResource newBinding)
                    throws org.apache.jackrabbit.webdav.DavException
        Specified by:
        rebind in interface org.apache.jackrabbit.webdav.bind.BindableResource
        Throws:
        org.apache.jackrabbit.webdav.DavException
        See Also:
        BindableResource.rebind(DavResource, DavResource)
      • getParentElements

        public Set<org.apache.jackrabbit.webdav.bind.ParentElement> getParentElements()
        Specified by:
        getParentElements in interface org.apache.jackrabbit.webdav.bind.BindableResource
        See Also:
        BindableResource.getParentElements()
      • getNode

        protected Node getNode()
        Returns the node that is wrapped by this resource.
        Returns:
        The underlying JCR node instance.
      • getImportContext

        protected ImportContext getImportContext​(org.apache.jackrabbit.webdav.io.InputContext inputCtx,
                                                 String systemId)
                                          throws IOException
        Returns a new ImportContext
        Parameters:
        inputCtx -
        systemId -
        Returns:
        a new ImportContext
        Throws:
        IOException
      • getExportContext

        protected ExportContext getExportContext​(org.apache.jackrabbit.webdav.io.OutputContext outputCtx)
                                          throws IOException
        Returns a new ExportContext
        Parameters:
        outputCtx -
        Returns:
        a new ExportContext
        Throws:
        IOException
      • getPropertyImportContext

        protected PropertyImportContext getPropertyImportContext​(List<? extends org.apache.jackrabbit.webdav.property.PropEntry> changeList)
        Returns a new PropertyImportContext.
        Parameters:
        changeList -
        Returns:
        a new PropertyImportContext.
      • getPropertyExportContext

        protected PropertyExportContext getPropertyExportContext()
        Returns a new PropertyExportContext.
        Returns:
        a new PropertyExportContext