org.fourthline.cling.support.contentdirectory

## Class AbstractContentDirectoryService

- java.lang.Object
- - org.fourthline.cling.support.contentdirectory.AbstractContentDirectoryService

-     public abstract class AbstractContentDirectoryService
      extends Object

  Simple ContentDirectory service skeleton.

  Only state variables and actions required by ContentDirectory:1 (not the optional ones) are implemented.

  Author:
    Alessio Gaeta, Christian Bauer

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `CAPS_WILDCARD`
    `protected PropertyChangeSupport` | `propertyChangeSupport`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractContentDirectoryService()`
    `protected` | `AbstractContentDirectoryService(List<String> searchCapabilities, List<String> sortCapabilities)`
    `protected` | `AbstractContentDirectoryService(List<String> searchCapabilities, List<String> sortCapabilities, PropertyChangeSupport propertyChangeSupport)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract BrowseResult` | `browse(String objectID, BrowseFlag browseFlag, String filter, long firstResult, long maxResults, SortCriterion[] orderby)` Implement this method to implement browsing of your content.
    `BrowseResult` | `browse(String objectId, String browseFlag, String filter, UnsignedIntegerFourBytes firstResult, UnsignedIntegerFourBytes maxResults, String orderBy)`
    `protected void` | `changeSystemUpdateID()` Call this method after making changes to your content directory.
    `PropertyChangeSupport` | `getPropertyChangeSupport()`
    `CSV<String>` | `getSearchCapabilities()`
    `CSV<String>` | `getSortCapabilities()`
    `UnsignedIntegerFourBytes` | `getSystemUpdateID()`
    `BrowseResult` | `search(String containerId, String searchCriteria, String filter, long firstResult, long maxResults, SortCriterion[] orderBy)` Override this method to implement searching of your content.
    `BrowseResult` | `search(String containerId, String searchCriteria, String filter, UnsignedIntegerFourBytes firstResult, UnsignedIntegerFourBytes maxResults, String orderBy)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### CAPS_WILDCARD

          public static final String CAPS_WILDCARD

      See Also:
        Constant Field Values

    - #### propertyChangeSupport

          protected final PropertyChangeSupport propertyChangeSupport

  - ### Constructor Detail

    - #### AbstractContentDirectoryService

          protected AbstractContentDirectoryService()

    - #### AbstractContentDirectoryService

          protected AbstractContentDirectoryService(List<String> searchCapabilities,
                                         List<String> sortCapabilities)

    - #### AbstractContentDirectoryService

          protected AbstractContentDirectoryService(List<String> searchCapabilities,
                                         List<String> sortCapabilities,
                                         PropertyChangeSupport propertyChangeSupport)

  - ### Method Detail

    - #### getSearchCapabilities

          public CSV<String> getSearchCapabilities()

    - #### getSortCapabilities

          public CSV<String> getSortCapabilities()

    - #### getSystemUpdateID

          public UnsignedIntegerFourBytes getSystemUpdateID()

    - #### getPropertyChangeSupport

          public PropertyChangeSupport getPropertyChangeSupport()

    - #### changeSystemUpdateID

          protected void changeSystemUpdateID()

      Call this method after making changes to your content directory.

      This will notify clients that their view of the content directory is potentially outdated and has to be refreshed.

    - #### browse

          public BrowseResult browse(String objectId,
                            String browseFlag,
                            String filter,
                            UnsignedIntegerFourBytes firstResult,
                            UnsignedIntegerFourBytes maxResults,
                            String orderBy)
                              throws ContentDirectoryException

      Throws:
        `ContentDirectoryException`

    - #### browse

          public abstract BrowseResult browse(String objectID,
                            BrowseFlag browseFlag,
                            String filter,
                            long firstResult,
                            long maxResults,
                            SortCriterion[] orderby)
                                       throws ContentDirectoryException

      Implement this method to implement browsing of your content.

      This is a required action defined by ContentDirectory:1.

      You should wrap any exception into a `ContentDirectoryException`, so a propery error message can be returned to control points.

      Throws:
        `ContentDirectoryException`

    - #### search

          public BrowseResult search(String containerId,
                            String searchCriteria,
                            String filter,
                            UnsignedIntegerFourBytes firstResult,
                            UnsignedIntegerFourBytes maxResults,
                            String orderBy)
                              throws ContentDirectoryException

      Throws:
        `ContentDirectoryException`

    - #### search

          public BrowseResult search(String containerId,
                            String searchCriteria,
                            String filter,
                            long firstResult,
                            long maxResults,
                            SortCriterion[] orderBy)
                              throws ContentDirectoryException

      Override this method to implement searching of your content.

      The default implementation returns an empty result.

      Throws:
        `ContentDirectoryException`

Copyright © 2014 4th Line GmbH, Switzerland. All Rights Reserved.