Package org.apache.synapse.mediators.bsf

# Interface ScriptMessageContext

All Superinterfaces:
  `org.apache.synapse.MessageContext`

All Known Implementing Classes:
  `CommonScriptMessageContext`, `GraalVMJavaScriptMessageContext`, `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

  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 Details

  - ### 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.