Class Metadata Selector (.^class)

Class Metadata Selector (.^class)

Returns the class of the Plain Old Java Object (POJO). The value might result from calling a method in a Java class or have a data type (such as String or DateTime) that DataWeave treats as a Java value, for example:

  • { “string” : payload.mystring.^class } might return { “mystring”: “java.lang.String” } if the input payload defines a Java string, such as simplePojo.string = “myString”, in a simple POJO.
  • { “mydate” : payload.mydate.^class } might return { “mydate”: “java.util.Date” }.

In the following Mule app flow, the Logger uses payload.^class to select the Java class of “my string”, set in the Set Payload (set-payload) component.

Mule App XML in Anypoint Studio:

<flow name=”setpayloadobjectFlow” >

  <scheduler doc:name=”Scheduler” >

    <scheduling-strategy >

      <fixed-frequency frequency=”15″ timeUnit=”SECONDS”/>

    </scheduling-strategy>

  </scheduler>

  <!– Set the payload to “my string”. –>

  <set-payload value='”my string”‘ doc:name=”Set Payload” />

  <!– Select the class to which “my string” belongs. –>

  <logger level=”INFO” doc:name=”Logger” message=”#[payload.^class]”/>

</flow>

The Studio console output shows that the payload string belongs to the class java.lang.String.

Console Output in Anypoint Studio:

INFO  2019-04-20 16:10:03,075 [[MuleRuntime].cpuLight.08:

 [setpayloadobject].setpayloadobjectFlow.CPU_LITE @6447187e]

 [event: 6da29400-63c1-11e9-98e0-8c8590a99d48]

 org.mule.runtime.core.internal.processor.LoggerMessageProcessor:

 java.lang.String

Follow Me

If you like my post please follow me to read my latest post on programming and technology.

Instagram

Facebook

Leave a Reply

Your email address will not be published. Required fields are marked *