Interface SysIntf

All Superinterfaces:
org.bedework.webdav.servlet.shared.WdSysIntf
All Known Implementing Classes:
BwSysIntfImpl

public interface SysIntf extends org.bedework.webdav.servlet.shared.WdSysIntf
All interactions with the underlying calendar system are made via this interface.

We're using the bedework object classes here. To simplify matters (a little) we don't have distinct event, todo and journal classes. They are all currently the BwEvent class with an entityType defining what the object represents.

Author:
Mike Douglass douglm at rpi.edu
  • Method Details

    • init

      void init(javax.servlet.http.HttpServletRequest req, String account, CardDAVConfig conf, CardDAVContextConfig ctxConf)
      Called before any other method is called to allow initialisation to take place at the first or subsequent requests
      Parameters:
      req - http request
      account - user id
      conf - global service configuration
      ctxConf - per application type configuration
    • getPrincipal

      org.bedework.access.AccessPrincipal getPrincipal()
      Return the current principal
      Returns:
      String
    • getPropertyHandler

      PropertyHandler getPropertyHandler(PropertyHandler.PropertyType ptype)
      Get a property handler
      Parameters:
      ptype -
      Returns:
      PropertyHandler
    • isPrincipal

      boolean isPrincipal(String val)
      Does the value appear to represent a valid principal?
      Parameters:
      val - possible id or principal
      Returns:
      true if it's a (possible) principal
    • getPrincipal

      org.bedework.access.AccessPrincipal getPrincipal(String href)
      Return principal information for the given href. Also tests for a valid principal.
      Parameters:
      href - for principal
      Returns:
      AccessPrincipal
    • makeHref

      String makeHref(org.bedework.access.AccessPrincipal p)
      Parameters:
      p - principal
      Returns:
      String href
    • getGroups

      Collection<String> getGroups(String rootUrl, String principalUrl)
      The urls should be principal urls. principalUrl can null for the current user. The result is a collection of principal urls of which the given url is a member, based upon rootUrl. For example, if rootUrl points to the base of the user principal hierarchy, then the rsult should be at least the current user's principal url, remembering that user principals are themselves groups and the user is considered a member of their own group.
      Parameters:
      rootUrl - - url to base search on.
      principalUrl - - url of principal or null for current user
      Returns:
      Collection of urls - always non-null
    • getDirectoryBrowsingDisallowed

      boolean getDirectoryBrowsingDisallowed()
      Do we allow browsing of directories?
      Returns:
      boolean true if browsing disallowed
      Throws:
      org.bedework.webdav.servlet.shared.WebdavException - for errors
    • getPrincipalInfo

      SysIntf.PrincipalInfo getPrincipalInfo(org.bedework.access.AccessPrincipal pcpl, boolean getDirInfo)
      Given a valid principal return the associated information needed for carddav interactions.
      Parameters:
      pcpl - the principal
      getDirInfo - get directory info if true and available.
      Returns:
      PrincipalInfo or null
    • getPrincipalCollectionSet

      Collection<String> getPrincipalCollectionSet(String resourceUri)
      Given a uri returns a Collection of uris that allow search operations on principals for that resource.
      Parameters:
      resourceUri -
      Returns:
      Collection of String
    • getPrincipals

      Collection<SysIntf.PrincipalInfo> getPrincipals(String resourceUri, org.bedework.webdav.servlet.shared.PrincipalPropertySearch pps)
      Given a PrincipalPropertySearch returns a Collection of matching principals.
      Parameters:
      resourceUri -
      pps - Collection of PrincipalPropertySearch
      Returns:
      Collection of CalUserInfo
    • addCard

      void addCard(String path, Card card)
      Add a card.
      Parameters:
      path - to collection
      card - Object to be added
    • updateCard

      void updateCard(String path, Card card)
      Update a card.
      Parameters:
      path - to collection
      card - Object to be updated
    • getCards

      GetResult getCards(CarddavCollection col, Filter filter, GetLimits limits)
      Return the cards for the current user in the given collection using the supplied filter.
      Parameters:
      col - collection
      filter - - if non-null defines a search filter
      limits - - applied to this query
      Returns:
      Collection populated card objects
    • getCard

      Card getCard(String path, String name)
      Get card given the collection and String name.
      Parameters:
      path - to collection
      name - String possible name
      Returns:
      Vcard or null
    • deleteCard

      void deleteCard(CarddavCardNode card)
      Parameters:
      card -
    • updateAccess

      void updateAccess(CarddavCardNode card, org.bedework.access.Acl acl)
      Parameters:
      card -
      acl -
    • checkAccess

      org.bedework.access.CurrentAccess checkAccess(CarddavCollection ent, int desiredAccess, boolean returnResult)
      Check the access for the given entity. Returns the current access or null or optionally throws a no access exception.
      Parameters:
      ent -
      desiredAccess -
      returnResult -
      Returns:
      CurrentAccess
    • updateAccess

      void updateAccess(CarddavColNode col, org.bedework.access.Acl acl)
      Parameters:
      col -
      acl -
    • makeCollection

      int makeCollection(CarddavCollection col, String parentPath)
      Parameters:
      col - Initialised collection object
      parentPath -
      Returns:
      int status
    • deleteCollection

      void deleteCollection(org.bedework.webdav.servlet.shared.WdCollection<?> cal)
      Parameters:
      cal -
    • copyMove

      void copyMove(org.bedework.webdav.servlet.shared.WdCollection<?> from, org.bedework.webdav.servlet.shared.WdCollection<?> to, boolean copy, boolean overwrite)
      Copy or move the collection to another location. Status is set on return
      Parameters:
      from - Source collection
      to - Destination collection
      copy - true for copying
      overwrite - destination exists
    • copyMove

      boolean copyMove(Card from, org.bedework.webdav.servlet.shared.WdCollection<?> to, String name, boolean copy, boolean overwrite)
      Copy or move the given entity to the destination collection with the given name. Status is set on return
      Parameters:
      from - Source entity
      to - Destination collection
      name - String name of new entity
      copy - true for copying
      overwrite - destination exists
      Returns:
      true if destination created (i.e. not updated)
    • getCollection

      CarddavCollection getCollection(String path)
      Get a collection given the path
      Parameters:
      path - String path of collection
      Returns:
      WdCollection null for unknown collection
    • updateCollection

      void updateCollection(org.bedework.webdav.servlet.shared.WdCollection<?> val)
      Update a collection.
      Parameters:
      val - updated WdCollection object
    • getCollections

      GetResult getCollections(CarddavCollection col, GetLimits limits)
      Returns children of the given collection to which the current user has some access.
      Parameters:
      col - parent collection
      limits -
      Returns:
      GetResult with collection of WdCollection
    • putFile

      void putFile(org.bedework.webdav.servlet.shared.WdCollection<?> coll, CarddavResource val)
      PUT a file.
      Parameters:
      coll - WdCollection defining recipient collection
      val - BwResource
    • getFile

      CarddavResource getFile(org.bedework.webdav.servlet.shared.WdCollection<?> coll, String name)
      GET a file.
      Parameters:
      coll - WdCollection containing file
      name - of file
      Returns:
      BwResource
    • getFileContent

      void getFileContent(CarddavResource val)
      Get resource content given the resource. It will be set in the resource object
      Parameters:
      val - BwResource
    • getFiles

      Collection<CarddavResource> getFiles(org.bedework.webdav.servlet.shared.WdCollection<?> coll)
      Get the files in a collection.
      Parameters:
      coll - WdCollection containing file
      Returns:
      Collection of BwResource
    • updateFile

      void updateFile(CarddavResource val, boolean updateContent)
      Update a file.
      Parameters:
      val - BwResource
      updateContent - if true we also update the content
    • deleteFile

      void deleteFile(CarddavResource val)
      Delete a file.
      Parameters:
      val - BwResource
    • copyMoveFile

      boolean copyMoveFile(CarddavResource from, org.bedework.webdav.servlet.shared.WdCollection<?> to, String name, boolean copy, boolean overwrite)
      Copy or move the given file to the destination collection with the given name. Status is set on return
      Parameters:
      from - Source resource
      to - Destination collection
      name - String name of new entity
      copy - true for copying
      overwrite - destination exists
      Returns:
      true if destination created (i.e. not updated)
    • getMaxUserEntitySize

      int getMaxUserEntitySize()
      Max size for an entity
      Returns:
      int
    • close

      void close()
      End any transactions.