org.modeshape.web.jcr.rest.client.json

## Class JsonRestClient

- java.lang.Object
- - org.modeshape.web.jcr.rest.client.json.JsonRestClient

- All Implemented Interfaces:
    IRestClient

      public final class JsonRestClient
      extends Object
      implements IRestClient

  The `JsonRestClient` class is an implementation of `IRestClient` that works with the ModeShape REST server that uses JSON as its interface protocol.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `JsonRestClient()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected org.modeshape.web.jcr.rest.client.json.JsonRestClient.Version` | `determineVersion(String getRepositoriesResponse)`
    `boolean` | `fileExists(File file, Workspace workspace, String path)` Checks if the given file exists or not on the server, by issuing a GET request.
    `Map<String,NodeType>` | `getNodeTypes(Repository repository)` Obtains the ModeShape node types defined within the specified workspace.
    `Collection<Repository>` | `getRepositories(Server server)` Obtains the ModeShape repositories defined within the specified server.
    `URL` | `getUrl(File file, String path, Workspace workspace)` Returns a url string, representing a "server recognizable" url for a the given file.
    `Collection<Workspace>` | `getWorkspaces(Repository repository)` Obtains the workspaces defined within the specified ModeShape respository.
    `static void` | `main(String[] args)`
    `Status` | `markAsPublishArea(Workspace workspace, String path, String title, String description)` Marks the last folder of the given path as a publish area, by adding the `mode:publishArea` mixin.
    `boolean` | `pathExists(Workspace workspace, String path, File file)`
    `String` | `planForQuery(Workspace workspace, String language, String statement, int offset, int limit, Map<String,String> variables)` Compute the plan for the supplied query in the workspace.
    `Status` | `publish(Workspace workspace, String path, File file)` Publishes, or uploads, a local file to the workspace at the specified path.
    `Status` | `publish(Workspace workspace, String path, File file, boolean useVersioning)` Publishes, or uploads, a local file to the workspace at the specified path.
    `List<QueryRow>` | `query(Workspace workspace, String language, String statement)` Executes the given query in the workspace.
    `List<QueryRow>` | `query(Workspace workspace, String language, String statement, int offset, int limit)` Executes the given query in the workspace.
    `List<QueryRow>` | `query(Workspace workspace, String language, String statement, int offset, int limit, Map<String,String> variables)` Executes the given query in the workspace.
    `Status` | `unmarkAsPublishArea(Workspace workspace, String path)` Unmarks the last folder of the given path as a publish area, by removing the `mode:publishArea` mixin.
    `Status` | `unpublish(Workspace workspace, String path, File file)` Unpublishes, or deletes, the resource at the specified path in the workspace.
    `Server` | `validate(Server server)` Determines whether the specified server is valid and can be used to establish a connection.

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

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

- - ### Constructor Detail

    - #### JsonRestClient

          public JsonRestClient()

  - ### Method Detail

    - #### validate

          public Server validate(Server server)
                          throws Exception

      Description copied from interface: `IRestClient`
      Determines whether the specified server is valid and can be used to establish a connection. This method returns a Server instance (that may be slightly different than the supplied Server instance, based upon the version of the server being used) and which should be used in all subsequent operations.
      Specified by:
        `validate` in interface `IRestClient`
      Parameters:
        `server` - the server (never `null`)
      Returns:
        the validated server, which should be used in all subsequent operations (never `null`)
      Throws:
        `Exception` - if there is a problem validating the server

    - #### determineVersion

          protected org.modeshape.web.jcr.rest.client.json.JsonRestClient.Version determineVersion(String getRepositoriesResponse)
                                                                                            throws Exception

      Throws:
        `Exception`

    - #### getRepositories

          public Collection<Repository> getRepositories(Server server)
                                                 throws Exception

      Description copied from interface: `IRestClient`
      Obtains the ModeShape repositories defined within the specified server.
      Specified by:
        `getRepositories` in interface `IRestClient`
      Parameters:
        `server` - the server whose repositories are being requested (never `null`)
      Returns:
        the repositories within the specified server (never `null`)
      Throws:
        `Exception` - if there is a problem obtaining the repositories

    - #### getNodeTypes

          public Map<String,NodeType> getNodeTypes(Repository repository)
                                            throws Exception

      Description copied from interface: `IRestClient`
      Obtains the ModeShape node types defined within the specified workspace.
      Specified by:
        `getNodeTypes` in interface `IRestClient`
      Parameters:
        `repository` - for whose node types are being requested (never `null`)
      Returns:
        the node types defined within the specified workspace (never `null`)
      Throws:
        `Exception` - if there is a problem obtaining the node types

    - #### getUrl

          public URL getUrl(File file,
                   String path,
                   Workspace workspace)
                     throws Exception

      Description copied from interface: `IRestClient`
      Returns a url string, representing a "server recognizable" url for a the given file. NOTE: This does not issue a request
      Specified by:
        `getUrl` in interface `IRestClient`
      Parameters:
        `file` - the file whose URL is being requested (never `null`)
        `path` - the path in the ModeShape workspace where the file is/could be located (never `null`)
        `workspace` - the workspace where the file is/could be located (never `null`)
      Returns:
        the workspace URL for the specified file (never `null`)
      Throws:
        `Exception` - if there is a problem obtaining the URL or if the file is a directory

    - #### getWorkspaces

          public Collection<Workspace> getWorkspaces(Repository repository)
                                              throws Exception

      Description copied from interface: `IRestClient`
      Obtains the workspaces defined within the specified ModeShape respository.
      Specified by:
        `getWorkspaces` in interface `IRestClient`
      Parameters:
        `repository` - the repository whose workspaces are being requested (never `null`)
      Returns:
        the workspaces within the specified repository (never `null`)
      Throws:
        `Exception` - if there is a problem obtaining the workspaces

    - #### pathExists

          public boolean pathExists(Workspace workspace,
                           String path,
                           File file)
                             throws Exception

      Parameters:
        `workspace` - the workspace being checked (never `null`)
        `path` - the path in workspace (never `null`)
        `file` - the file being checked (never `null`)
      Returns:
        `true` if the file exists in the workspace at the specified path
      Throws:
        `Exception` - if there is a problem checking the existence of the file

    - #### publish

          public Status publish(Workspace workspace,
                       String path,
                       File file)

      Description copied from interface: `IRestClient`
      Publishes, or uploads, a local file to the workspace at the specified path. This method does not utilize any versioning, and is equivalent to calling `"`publish(workspace,path,file,false)`` ".
      Specified by:
        `publish` in interface `IRestClient`
      Parameters:
        `workspace` - the workspace where the resource will be published (never `null`)
        `path` - the unencoded path to the folder where the file will be published (never `null`)
        `file` - the resource being published (never `null`)
      Returns:
        a status of the publishing operation outcome (never `null`)

    - #### fileExists

          public boolean fileExists(File file,
                           Workspace workspace,
                           String path)
                             throws Exception

      Description copied from interface: `IRestClient`
      Checks if the given file exists or not on the server, by issuing a GET request.
      Specified by:
        `fileExists` in interface `IRestClient`
      Parameters:
        `file` - the file whose existence is checked, (never `null`)
        `workspace` - the workspace where the file is/could be located (never `null`)
        `path` - the path in the ModeShape workspace to the parent of the file (never `null`)
      Returns:
        `true` if the file exists on the server, or `false` otherwise.
      Throws:
        `Exception` - if there is a problem while performing the check

    - #### publish

          public Status publish(Workspace workspace,
                       String path,
                       File file,
                       boolean useVersioning)

      Description copied from interface: `IRestClient`
      Publishes, or uploads, a local file to the workspace at the specified path. This method allows the client to specify whether the uploaded file should be versioned. If so, this method will add the "mix:versionable" mixin to the "nt:file" node, and subsequent attempts to re-publish will result in new versions in the version history of the file. If no versioning is to be done, then no version history is maintained for the file, and subsequent attemps to re-publish will simply overwrite any existing content.
      Specified by:
        `publish` in interface `IRestClient`
      Parameters:
        `workspace` - the workspace where the resource will be published (never `null`)
        `path` - the unencoded path to the folder where the file will be published (never `null`)
        `file` - the resource being published (never `null`)
        `useVersioning` - true if the uploaded file should be versioned, or false if no JCR versioning be used
      Returns:
        a status of the publishing operation outcome (never `null`)

    - #### unpublish

          public Status unpublish(Workspace workspace,
                         String path,
                         File file)

      Description copied from interface: `IRestClient`
      Unpublishes, or deletes, the resource at the specified path in the workspace. If a file being unpublished is not found in the workspace an `info status` is returned.
      Specified by:
        `unpublish` in interface `IRestClient`
      Parameters:
        `workspace` - the workspace where the resource will be unpublished (never `null`)
        `path` - the unencoded path to the folder where the file is published (never `null`)
        `file` - the file being unpublished (never `null`)
      Returns:
        a status of the unpublishing operation outcome (never `null`)

    - #### markAsPublishArea

          public Status markAsPublishArea(Workspace workspace,
                                 String path,
                                 String title,
                                 String description)

      Description copied from interface: `IRestClient`
      Marks the last folder of the given path as a publish area, by adding the `mode:publishArea` mixin.

      The path is made up of folder segments. If any folder segment does not exist, it will be created. The folder corresponding to the last path segment will become the publish area. If the last folder already is a publish area, the title and/or description will be updated.
      Specified by:
        `markAsPublishArea` in interface `IRestClient`
      Parameters:
        `workspace` - the workspace where the operation will be performed (never `null`)
        `path` - the unencoded path to the folder which will become the publish area (never `null`).
        `title` - an optional `String` representing the title of the area (can be `null`)
        `description` - an optional `String` representing the description of the area (can be `null`)
      Returns:
        the status of the operation (never `null`).

    - #### unmarkAsPublishArea

          public Status unmarkAsPublishArea(Workspace workspace,
                                   String path)

      Description copied from interface: `IRestClient`
      Unmarks the last folder of the given path as a publish area, by removing the `mode:publishArea` mixin.

      The path is made up of folder segments. If any folder segment does not exist, no changes will be performed If the last folder segment from the path is not a publish area, no changes will be performed.
      Specified by:
        `unmarkAsPublishArea` in interface `IRestClient`
      Parameters:
        `workspace` - the workspace where the operation will be performed (never `null`)
        `path` - the unencoded path to the folder which will be cleared as a publish area (never `null`).
      Returns:
        the status of the operation (never `null`).

    - #### query

          public List<QueryRow> query(Workspace workspace,
                             String language,
                             String statement)
                               throws Exception

      Description copied from interface: `IRestClient`
      Executes the given query in the workspace.
      Specified by:
        `query` in interface `IRestClient`
      Parameters:
        `workspace` - the workspace where the resource will be unpublished (never `null`)
        `language` - the JCR query language to use (never `null`)
        `statement` - the query itself (never `null`)
      Returns:
        the list of rows returned by the query (never `null`)
      Throws:
        `Exception` - if there is a problem obtaining the workspaces

    - #### query

          public List<QueryRow> query(Workspace workspace,
                             String language,
                             String statement,
                             int offset,
                             int limit)
                               throws Exception

      Description copied from interface: `IRestClient`
      Executes the given query in the workspace.
      Specified by:
        `query` in interface `IRestClient`
      Parameters:
        `workspace` - the workspace where the resource will be unpublished (never `null`)
        `language` - the JCR query language to use (never `null`)
        `statement` - the query itself (never `null`)
        `offset` - the first row to be returned; if this value is negative, rows are returned starting with the first row
        `limit` - the maximum number of rows to be returned; if this value is negative, all rows are returned
      Returns:
        the list of rows returned by the query (never `null`)
      Throws:
        `Exception` - if there is a problem obtaining the workspaces

    - #### query

          public List<QueryRow> query(Workspace workspace,
                             String language,
                             String statement,
                             int offset,
                             int limit,
                             Map<String,String> variables)
                               throws Exception

      Description copied from interface: `IRestClient`
      Executes the given query in the workspace.
      Specified by:
        `query` in interface `IRestClient`
      Parameters:
        `workspace` - the workspace where the resource will be unpublished (never `null`)
        `language` - the JCR query language to use (never `null`)
        `statement` - the query itself (never `null`)
        `offset` - the first row to be returned; if this value is negative, rows are returned starting with the first row
        `limit` - the maximum number of rows to be returned; if this value is negative, all rows are returned
        `variables` - the query variables; may be null
      Returns:
        the list of rows returned by the query (never `null`)
      Throws:
        `Exception` - if there is a problem obtaining the workspaces

    - #### planForQuery

          public String planForQuery(Workspace workspace,
                            String language,
                            String statement,
                            int offset,
                            int limit,
                            Map<String,String> variables)
                              throws Exception

      Description copied from interface: `IRestClient`
      Compute the plan for the supplied query in the workspace. This method does not return any results.
      Specified by:
        `planForQuery` in interface `IRestClient`
      Parameters:
        `workspace` - the workspace where the resource will be unpublished (never `null`)
        `language` - the JCR query language to use (never `null`)
        `statement` - the query itself (never `null`)
        `offset` - the first row to be returned; if this value is negative, rows are returned starting with the first row
        `limit` - the maximum number of rows to be returned; if this value is negative, all rows are returned
        `variables` - the query variables; may be null
      Returns:
        the string representation of the query plan
      Throws:
        `Exception` - if there is a problem obtaining the workspaces

    - #### main

          public static void main(String[] args)

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