Package org.apache.synapse.mediators.bsf

## Interface ScriptMessageContext

- All Superinterfaces:
    `org.apache.synapse.MessageContext`
  All Known Implementing Classes:
    `CommonScriptMessageContext`, `GraalVMJavaScriptMessageContext`, `NashornJavaScriptMessageContext`, `OpenJDKNashornJavaScriptMessageContext`

      public interface ScriptMessageContext
      extends org.apache.synapse.MessageContext

  ScriptMessageContext decorates the MessageContext interface by adding methods to use when deals with message payload XML/Json, in a way natural to the scripting languages.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addHeader​(boolean mustUnderstand, Object content)` | Add a new SOAP header to the message.
    `Object` | `getEnvelopeXML()` | Get the XML representation of the complete SOAP envelope.
    `Object` | `getJsonText()` | Get the Message Payload as a text.
    `Object` | `getPayloadJSON()` | Get the JSON object representation of the JSON message body of the request.
    `String` | `getPayloadText()` | Get the Message Payload as a text.
    `Object` | `getPayloadXML()` | Get the XML representation of SOAP Body payload.
    `Object` | `jsonObject​(org.apache.synapse.MessageContext messageContext)` | Get the JSON object representation of the JSON message body of the request.
    `void` | `removeProperty​(String key, String scope)` | Remove property from the message.
    `void` | `setFaultTo​(String reference)` | This is used to set the value which specifies the receiver of the faults relating to the message.
    `void` | `setFrom​(String reference)` | This is used to set the value which specifies the sender of the message.
    `boolean` | `setJsonObject​(org.apache.synapse.MessageContext messageContext, Object jsonObject)` | Saves the JavaScript Object to the message context.
    `boolean` | `setJsonText​(org.apache.synapse.MessageContext messageContext, Object jsonObject)` | Saves the JSON String to the message context.
    `void` | `setPayloadJSON​(Object jsonPayload)` | Saves the payload of this message context as a JSON payload.
    `void` | `setPayloadXML​(Object payload)` | Set the SOAP body payload from XML.
    `void` | `setProperty​(String key, Object value, String scope)` | Add a new property to the message.
    `void` | `setReplyTo​(String reference)` | This is used to set the value which specifies the receiver of the replies to the message.
    `void` | `setScriptEngine​(ScriptEngine scriptEngine)` | Set a script engine.
    `void` | `setTo​(String reference)` | This is used to set the value which specifies the receiver of the message.

    - ### Methods inherited from interface org.apache.synapse.MessageContext

      `getConfiguration, getContextEntries, getContinuationStateStack, getDefaultConfiguration, getEndpoint, getEntry, getEnvelope, getEnvironment, getFaultSequence, getFaultStack, getFaultTo, getFormat, getFrom, getLocalEntry, getMainSequence, getMessageFlowTracingState, getMessageID, getMessageString, getProperty, getPropertyKeySet, getRelatesTo, getReplyTo, getSequence, getSequenceTemplate, getServiceLog, getSoapAction, getTo, getTracingState, getVariable, getVariableKeySet, getWSAAction, getWSAMessageID, isContinuationEnabled, isDoingGET, isDoingMTOM, isDoingPOX, isDoingSWA, isFaultResponse, isResponse, isSOAP11, pushContinuationState, pushFaultHandler, restoreContinuationStateStack, setConfiguration, setContextEntries, setContinuationEnabled, setDoingGET, setDoingMTOM, setDoingPOX, setDoingSWA, setEnvelope, setEnvironment, setFaultResponse, setFaultTo, setFrom, setMessageFlowTracingState, setMessageID, setProperty, setRelatesTo, setReplyTo, setResponse, setSoapAction, setTo, setTracingState, setVariable, setWSAAction, setWSAMessageID`

- - ### Method Detail

    - #### getPayloadXML

          Object getPayloadXML()
                        throws ScriptException

      Get the XML representation of SOAP Body payload. The payload is the first element inside the SOAP
      tags.
      Returns:
        the XML SOAP Body
      Throws:
        `ScriptException` - in-case of an error in getting the XML representation of SOAP Body payload

    - #### setPayloadXML

          void setPayloadXML​(Object payload)
                      throws org.apache.axiom.om.OMException,
                             ScriptException

      Set the SOAP body payload from XML.
      Parameters:
        `payload` - Message payload
      Throws:
        `ScriptException` - For errors in converting xml To OM
        `org.apache.axiom.om.OMException` - For errors in OM manipulation

    - #### getPayloadJSON

          Object getPayloadJSON()

      Get the JSON object representation of the JSON message body of the request.
      Returns:
        JSON object of the message body

    - #### getJsonText

          Object getJsonText()

      Get the Message Payload as a text.
      Returns:
        Payload as text

    - #### getPayloadText

          String getPayloadText()

      Get the Message Payload as a text.
      Returns:
        Payload as text

    - #### setJsonObject

          boolean setJsonObject​(org.apache.synapse.MessageContext messageContext,
                                Object jsonObject)

      Saves the JavaScript Object to the message context.
      Parameters:
        `messageContext` - The message context of the sequence
        `jsonObject` - JavaScript Object which is passed to be saved in message context
      Returns:
        true

    - #### setJsonText

          boolean setJsonText​(org.apache.synapse.MessageContext messageContext,
                              Object jsonObject)

      Saves the JSON String to the message context.
      Parameters:
        `messageContext` - The message context of the sequence
        `jsonObject` - JavaScript string which is passed to be saved in message context
      Returns:
        false if messageContext is null return true otherwise

    - #### jsonObject

          Object jsonObject​(org.apache.synapse.MessageContext messageContext)

      Get the JSON object representation of the JSON message body of the request.
      Returns:
        JSON object of the message body

    - #### setScriptEngine

          void setScriptEngine​(ScriptEngine scriptEngine)

      Set a script engine.
      Parameters:
        `scriptEngine` - a ScriptEngine instance

    - #### addHeader

          void addHeader​(boolean mustUnderstand,
                         Object content)
                  throws ScriptException

      Add a new SOAP header to the message.
      Parameters:
        `mustUnderstand` - the value for the `soapenv:mustUnderstand` attribute
        `content` - the XML for the new header
      Throws:
        `ScriptException` - if an error occurs when converting the XML to OM

    - #### getEnvelopeXML

          Object getEnvelopeXML()
                         throws ScriptException

      Get the XML representation of the complete SOAP envelope.
      Returns:
        return an object that represents the payload in the current scripting language
      Throws:
        `ScriptException` - in-case of an error in getting the XML representation of SOAP envelope

    - #### setTo

          void setTo​(String reference)

      This is used to set the value which specifies the receiver of the message.
      Parameters:
        `reference` - specifies the receiver of the message

    - #### setFaultTo

          void setFaultTo​(String reference)

      This is used to set the value which specifies the receiver of the faults relating to the message.
      Parameters:
        `reference` - specifies the specifies the receiver of the faults relating to the message

    - #### setFrom

          void setFrom​(String reference)

      This is used to set the value which specifies the sender of the message.
      Parameters:
        `reference` - specifies the sender of the message

    - #### setReplyTo

          void setReplyTo​(String reference)

      This is used to set the value which specifies the receiver of the replies to the message.
      Parameters:
        `reference` - specifies the receiver of the replies to the message

    - #### setProperty

          void setProperty​(String key,
                           Object value,
                           String scope)

      Add a new property to the message.
      Parameters:
        `key` - unique identifier of property
        `value` - value of property
        `scope` - scope of the property

    - #### removeProperty

          void removeProperty​(String key,
                              String scope)

      Remove property from the message.
      Parameters:
        `key` - unique identifier of property
        `scope` - scope of the property

    - #### setPayloadJSON

          void setPayloadJSON​(Object jsonPayload)
                       throws ScriptException

      Saves the payload of this message context as a JSON payload.
      Parameters:
        `jsonPayload` - Javascript native object to be set as the message body
      Throws:
        `ScriptException` - in case of creating a JSON object out of the javascript native object.