org.modeshape.webdav

## Interface IWebdavStore

- All Known Implementing Classes:
    LocalFileSystemStore

      public interface IWebdavStore

  Interface for simple implementation of any store for the WebdavServlet

  based on the BasicWebdavStore from Oliver Zeigermann, that was part of the Webdav Construcktion Kit from slide

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ITransaction` | `begin(Principal principal)` Indicates that a new request or transaction with this store involved has been started.
    `void` | `checkAuthentication(ITransaction transaction)` Checks if authentication information passed in is valid.
    `void` | `commit(ITransaction transaction)` Indicates that all changes done inside this request shall be made permanent and any transactions, connections and other temporary resources shall be terminated.
    `void` | `createFolder(ITransaction transaction, String folderUri)` Creates a folder at the position specified by `folderUri`.
    `void` | `createResource(ITransaction transaction, String resourceUri)` Creates a content resource at the position specified by `resourceUri`.
    `void` | `destroy()` Life cycle method, called by WebdavServlet's destroy() method.
    `String[]` | `getChildrenNames(ITransaction transaction, String folderUri)` Gets the names of the children of the folder specified by `folderUri`.
    `Map<String,String>` | `getCustomNamespaces(ITransaction transaction, String resourceUri)` Returns a map of custom namespaces that are specific to the store.
    `Map<String,Object>` | `getCustomProperties(ITransaction transaction, String resourceUri)` Returns the map of (propertyName, propertyValue) of custom properties of the given resource.
    `InputStream` | `getResourceContent(ITransaction transaction, String resourceUri)` Gets the content of the resource specified by `resourceUri`.
    `long` | `getResourceLength(ITransaction transaction, String resourceUri)` Gets the length of the content resource specified by `resourceUri`.
    `StoredObject` | `getStoredObject(ITransaction transaction, String uri)` Gets the storedObject specified by `uri`
    `void` | `removeObject(ITransaction transaction, String uri)` Removes the object specified by `uri`.
    `void` | `rollback(ITransaction transaction)` Indicates that all changes done inside this request shall be undone and any transactions, connections and other temporary resources shall be terminated.
    `Map<String,String>` | `setCustomProperties(ITransaction transaction, String resourceUri, Map<String,Object> propertiesToSet, List<String> propertiesToRemove)` Updates the custom properties on the given resource.
    `long` | `setResourceContent(ITransaction transaction, String resourceUri, InputStream content, String contentType, String characterEncoding)` Sets / stores the content of the resource specified by `resourceUri`.

- - ### Method Detail

    - #### destroy

          void destroy()

      Life cycle method, called by WebdavServlet's destroy() method. Should be used to clean up resources.

    - #### begin

          ITransaction begin(Principal principal)

      Indicates that a new request or transaction with this store involved has been started. The request will be terminated by either `commit(ITransaction)` or `rollback(ITransaction)`. If only non-read methods have been called, the request will be terminated by a `commit(ITransaction)`. This method will be called by (@link WebdavStoreAdapter} at the beginning of each request.
      Parameters:
        `principal` - the principal that started this request or `null` if there is non available
      Returns:
        a new `transaction`
      Throws:
        `WebdavException`

    - #### checkAuthentication

          void checkAuthentication(ITransaction transaction)

      Checks if authentication information passed in is valid. If not throws an exception.
      Parameters:
        `transaction` - indicates that the method is within the scope of a WebDAV transaction

    - #### commit

          void commit(ITransaction transaction)

      Indicates that all changes done inside this request shall be made permanent and any transactions, connections and other temporary resources shall be terminated.
      Parameters:
        `transaction` - indicates that the method is within the scope of a WebDAV transaction
      Throws:
        `WebdavException` - if something goes wrong on the store level

    - #### rollback

          void rollback(ITransaction transaction)

      Indicates that all changes done inside this request shall be undone and any transactions, connections and other temporary resources shall be terminated.
      Parameters:
        `transaction` - indicates that the method is within the scope of a WebDAV transaction
      Throws:
        `WebdavException` - if something goes wrong on the store level

    - #### createFolder

          void createFolder(ITransaction transaction,
                          String folderUri)

      Creates a folder at the position specified by `folderUri`.
      Parameters:
        `transaction` - indicates that the method is within the scope of a WebDAV transaction
        `folderUri` - URI of the folder
      Throws:
        `WebdavException` - if something goes wrong on the store level

    - #### createResource

          void createResource(ITransaction transaction,
                            String resourceUri)

      Creates a content resource at the position specified by `resourceUri`.
      Parameters:
        `transaction` - indicates that the method is within the scope of a WebDAV transaction
        `resourceUri` - URI of the content resource
      Throws:
        `WebdavException` - if something goes wrong on the store level

    - #### getResourceContent

          InputStream getResourceContent(ITransaction transaction,
                                       String resourceUri)

      Gets the content of the resource specified by `resourceUri`.
      Parameters:
        `transaction` - indicates that the method is within the scope of a WebDAV transaction
        `resourceUri` - URI of the content resource
      Returns:
        input stream you can read the content of the resource from
      Throws:
        `WebdavException` - if something goes wrong on the store level

    - #### setResourceContent

          long setResourceContent(ITransaction transaction,
                                String resourceUri,
                                InputStream content,
                                String contentType,
                                String characterEncoding)

      Sets / stores the content of the resource specified by `resourceUri`.
      Parameters:
        `transaction` - indicates that the method is within the scope of a WebDAV transaction
        `resourceUri` - URI of the resource where the content will be stored
        `content` - input stream from which the content will be read from
        `contentType` - content type of the resource or `null` if unknown
        `characterEncoding` - character encoding of the resource or `null` if unknown or not applicable
      Returns:
        lenght of resource
      Throws:
        `WebdavException` - if something goes wrong on the store level

    - #### getChildrenNames

          String[] getChildrenNames(ITransaction transaction,
                                  String folderUri)

      Gets the names of the children of the folder specified by `folderUri`.
      Parameters:
        `transaction` - indicates that the method is within the scope of a WebDAV transaction
        `folderUri` - URI of the folder
      Returns:
        a (possibly empty) list of children, or `null` if the uri points to a file
      Throws:
        `WebdavException` - if something goes wrong on the store level

    - #### getResourceLength

          long getResourceLength(ITransaction transaction,
                               String resourceUri)

      Gets the length of the content resource specified by `resourceUri`.
      Parameters:
        `transaction` - indicates that the method is within the scope of a WebDAV transaction
        `resourceUri` - URI of the resource for which the length should be retrieved
      Returns:
        length of the resource in bytes, `-1` declares this value as invalid and asks the adapter to try to set it from the properties if possible
      Throws:
        `WebdavException` - if something goes wrong on the store level

    - #### removeObject

          void removeObject(ITransaction transaction,
                          String uri)

      Removes the object specified by `uri`.
      Parameters:
        `transaction` - indicates that the method is within the scope of a WebDAV transaction
        `uri` - URI of the object, i.e. content resource or folder
      Throws:
        `WebdavException` - if something goes wrong on the store level

    - #### getStoredObject

          StoredObject getStoredObject(ITransaction transaction,
                                     String uri)

      Gets the storedObject specified by `uri`
      Parameters:
        `transaction` - indicates that the method is within the scope of a WebDAV transaction
        `uri` - URI
      Returns:
        StoredObject

    - #### setCustomProperties

          Map<String,String> setCustomProperties(ITransaction transaction,
                                               String resourceUri,
                                               Map<String,Object> propertiesToSet,
                                               List<String> propertiesToRemove)

      Updates the custom properties on the given resource. NOTE: Nested properties are not supported
      Parameters:
        `transaction` - the `ITransaction` within which the operation takes place; may not be null
        `resourceUri` - the URI of the object on which the properties should be updated; may not be null
        `propertiesToSet` - a map of (propertyName, propertyValue) pairs which should be set on the object; may not be null; If the name of a property contains a namespace, it is expected to be in the [namespaceUri]:[localPropertyName] format.
        `propertiesToRemove` - a set of property name representing the properties which should be removed
      Returns:
        a Map of (property name, error message) for the properties which could not changed (either set or removed). If the operation was successful, this may be null.

    - #### getCustomProperties

          Map<String,Object> getCustomProperties(ITransaction transaction,
                                               String resourceUri)

      Returns the map of (propertyName, propertyValue) of custom properties of the given resource. NOTE: Nested properties are not supported
      Parameters:
        `transaction` - the `ITransaction` within which the operation takes place; may not be null
        `resourceUri` - the URI of the object on which the properties should be updated; may not be null
      Returns:
        a Map of (property name, property value) pairs; may not be null; if the property name is namespace-aware it is expected to have the [namespaceUri]:[localPropertyName] format

    - #### getCustomNamespaces

          Map<String,String> getCustomNamespaces(ITransaction transaction,
                                               String resourceUri)

      Returns a map of custom namespaces that are specific to the store.
      Parameters:
        `transaction` - the `ITransaction` within which the operation takes place; may not be null
        `resourceUri` - resourceUri the URI of the object on which the properties should be updated; may not be null
      Returns:
        a Map of (namespaceUri, namespacePrefix) pairs;may not be null;

Copyright © 2008-2014 JBoss, a division of Red Hat. All Rights Reserved.