View Javadoc

    1   package org.apache.turbine.services.jsonrpc;
    2
    3   /*
    4    * Licensed to the Apache Software Foundation (ASF) under one
    5    * or more contributor license agreements.  See the NOTICE file
    6    * distributed with this work for additional information
    7    * regarding copyright ownership.  The ASF licenses this file
    8    * to you under the Apache License, Version 2.0 (the
    9    * "License"); you may not use this file except in compliance
    10   * with the License.  You may obtain a copy of the License at
    11   *
    12   *   http://www.apache.org/licenses/LICENSE-2.0
    13   *
    14   * Unless required by applicable law or agreed to in writing,
    15   * software distributed under the License is distributed on an
    16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    17   * KIND, either express or implied.  See the License for the
    18   * specific language governing permissions and limitations
    19   * under the License.
    20   */
    21
    22  import java.io.CharArrayWriter;
    23
    24  import javax.servlet.http.HttpServletRequest;
    25  import javax.servlet.http.HttpSession;
    26
    27  import org.apache.turbine.services.Service;
    28  import org.jabsorb.JSONRPCBridge;
    29
    30
    31  /**
    32   * The interface an JsonRpcService implements.
    33   *
    34   * @author <a href="mailto:seade@backstagetech.com.au">Scott Eade</a>
    35   * @version $Id: JsonRpcService.java 1706239 2015-10-01 13:18:35Z tv $
    36   */
    37  public interface JsonRpcService
    38          extends Service
    39  {
    40      /** TurbineJsonRpcService. */
    41      public static final String SERVICE_NAME = "JsonRpcService";
    42
    43      /**
    44       * Process a JSON RPC call
    45       * @param cdata the JSON data
    46       * @param json_bridge the {@link JSONRPCBridge} object
    47       * @param request the request
    48       * @return the return object of the JSON RPC call
    49       */
    50      public Object processCall(CharArrayWriter cdata,
    51              JSONRPCBridge json_bridge, HttpServletRequest request);
    52
    53      /**
    54       * Register an object with the {@link JSONRPCBridge} in a given session
    55       *
    56       * @param session the session
    57       * @param key the name of the object in the session
    58       * @param value the object to register
    59       */
    60      public void registerObject(HttpSession session, String key, Object value);
    61
    62      /**
    63       * Register an object with the {@link JSONRPCBridge} globally
    64       *
    65       * @param key the name of the object in the session
    66       * @param value the object to register
    67       */
    68      public void registerObjectGlobal(String key, Object value);
    69
    70      /**
    71       * Get the {@link JSONRPCBridge} from the session
    72       *
    73       * @param session the session
    74       * @return the {@link JSONRPCBridge} instance
    75       */
    76      public JSONRPCBridge getBridge(HttpSession session);
    77
    78      /**
    79       * Remove the {@link JSONRPCBridge} from the session
    80       *
    81       * @param session the session
    82       */
    83      public void clearBridge(HttpSession session);
    84  }