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.
Leave a Comment