org.rexxla.bsf.engines.rexx

## Interface RexxCommandHandler

- All Superinterfaces:
    RexxHandler
  All Known Subinterfaces:
    RexxRedirectingCommandHandler
  All Known Implementing Classes:
    AbstractDirectCommandHandler, AbstractRedirectingCommandHandler, JavaDrawingHandler

      public interface RexxCommandHandler
      extends RexxHandler

  Interface class for Rexx command handlers. Cf. ooRexx' `rexxapi.pdf` documentation.

      ------------------------ Apache Version 2.0 license -------------------------
          Copyright (C) 2012-2022 Rony G. Flatscher

          Licensed under the Apache License, Version 2.0 (the "License");
          you may not use this file except in compliance with the License.
          You may obtain a copy of the License at

              http://www.apache.org/licenses/LICENSE-2.0

          Unless required by applicable law or agreed to in writing, software
          distributed under the License is distributed on an "AS IS" BASIS,
          WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
          See the License for the specific language governing permissions and
          limitations under the License.
       -----------------------------------------------------------------------------

  Since:
    2012-02-17 (BSF4ooRexx 641, baseline Java=6, ooRexx=4.1), 2022-08-18 (BSF4ooRexx 850, baseline Java=8, ooRexx=5.0)
  Version:
    2.0
  Author:
    Rony G. Flatscher

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `version` Version string indicating version of this class (majorVersion*100+minorVersion concatenated with a dot and the sorted date of last change.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `handleCommand(java.lang.Object slot, java.lang.String address, java.lang.String command)` Command handler signature (called via native code) according to the ooRexx API documentation in `rexxpg.pdf`.
    `default boolean` | `isRedirectable()` Indicates that the command handler is not redirectable (a new feature in ooRexx 5.0).
    `default java.lang.String` | `toString(java.lang.Object slot, java.lang.String environmentName)` Create a string rendering of this environment handler.

    - ### Methods inherited from interface org.rexxla.bsf.engines.rexx.RexxHandler

      `checkCondition, clearCondition, dropContextVariable, getAllContextVariables, getCallerContext, getConditionInfo, getContextVariable, getGlobalEnvironment, getInterpreterVersion, getLanguageLevel, getLocalEnvironment, getNil, haltThread, newArray, newDirectory, newStem, newStringTable, raiseCondition, raiseException, raiseException0, raiseException1, raiseException2, setContextVariable, setContextVariableToNil, setThreadTrace`

- - ### Field Detail

    - #### version

          static final java.lang.String version

      Version string indicating version of this class (majorVersion*100+minorVersion concatenated with a dot and the sorted date of last change.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### isRedirectable

          default boolean isRedirectable()

      Indicates that the command handler is not redirectable (a new feature in ooRexx 5.0).
      Returns:
        returns false

    - #### handleCommand

          java.lang.Object handleCommand(java.lang.Object slot,
                                         java.lang.String address,
                                         java.lang.String command)

      Command handler signature (called via native code) according to the ooRexx API documentation in `rexxpg.pdf`.
      Parameters:
        `slot` - this is an opaque `Object` argument which must be supplied unchanged to the direct Rexx API methods in `RexxHandler`
        `address` - a String denoting the name of the command environment for which this method got invoked
        `command` - a String containing the command passed from Rexx
      Returns:
        any value, which can be retrieved on the Rexx side via the variable `RC` (result code)

    - #### toString

          default java.lang.String toString(java.lang.Object slot,
                                            java.lang.String environmentName)

      Create a string rendering of this environment handler.
      Parameters:
        `slot` - supply the received slot argument
        `environmentName` - supply the environment name this handler got defined for
      Returns:
        the string rendering of this instance