Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The Switch Mediator is an XPath or JSONPath filter. The XPath or JSONPath is evaluated and returns a string. This string is matched against the regular expression in each switch case statementmediator, in the specified order. If a matching case is found, it will be executed, and no further processing of the case statements is executedremaining switch case mediators are not processed. If none of the case statements are matching, and a default case is specified, the default will be executed.

Info

The Switch mediator is a conditionally content aware mediator.

...

Table of Contents
maxLevel3
minLevel3
styleborder:1
locationtop
typeflat
separatorpipe

...

Code Block
XML
XML
<switch source="[XPath|json-eval(JSON Path)]">
   <case regex="string">
     mediator+
   </case>+
   <default>
     mediator+
   </default>?
</switch>

...

UI Configuration

This section describes how to configure the mediator in design view. You can also configure the mediator using XML by clicking switch to source view in the Mediator window.

Image Removed

To add the Switch mediator, click Add Child or Add Sibling in the sequence, and then click Filter -> Switch.

Image Removed

Here are the options to configure the Switch Mediator:

...

Image Added

The parameters available to configure the Switch mediator are as follows.

Parameter NameDescription
Source XPathThe source XPath or JSONPath to be evaluated. When specifying a JSONPath, use the

...

format json-eval(<JSON_PATH>), such as json-eval(getQuote.request.symbol). For more information on using JSON with the ESB,

...

see JSON Support. If you

...

...

 in the expression,

...

click Namespaces

...

 and map the namespace prefix to the correct URI.
Number of cases

...

This parameter displays the number of cases

...

currently added to the Switch mediator configuration.

...

...

for instructions to add a case.

 

Specify default caseClick this link to add a default switch-case mediator. Adding a default switch case mediator is optional. If it is specified, it will be executed if no matching switch-case is identified.

 

Switch-case mediator
Anchor
Switch-Case Mediator
Switch-Case Mediator

After clicking Add case in the parent Switch mediator, click the Case node that is added to the tree, and then specify the regular expression to use to match the switching value.

Image Removed

...

  1. To add a case, click Add case, which adds an empty switch-case mediator under the Switch mediator. A switch-case mediator would appear as a child of the Switch mediator in the mediator tree as shown below.
    Image Added
  2. Click Case to configure the switch-case mediator. The page will expand to display the section shown below where a regular expression can be added in the Case Value (Regular Expression) parameter.
    Image Added 
  3. Click Case again and click Add Child, and add the mediator(s) you want to execute when this case matches the switching value.

 

Info
titleNote

You can configure the mediator using XML. Click switch to source view in the Mediator window.

Image Added

...

Example

The following In this example uses the Property mediator to set  sets the local property named "symbol" on the current message depending on the evaluation of the string. It will get the text of symbol element and match it against the values MSFT and IBM. If the text does not match either of these symbols, the default case will be executed.

Code Block
XML
XML
<switch source="//m0:getQuote/m0:request/m0:symbol" xmlns:m0="http://services.samples/xsd">
      <case regex="IBM">
          <!-- the property mediator sets a local property on the *current* message -->
          <property name="symbol" value="Great stock - IBM"/>
      </case>
      <case regex="MSFT">
          <property name="symbol" value="Are you sure? - MSFT"/>
      </case>
      <default>
          <!-- it is possible to assign the result of an XPath or JSON Path expression as well -->
          <property name="symbol"
                expression="fn:concat('Normal Stock - ', //m0:getQuote/m0:request/m0:symbol)"
                xmlns:m0="http://services.samples/xsd"/>
      </default>
  </switch>

...