camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bp <bhaskar.d...@gmail.com>
Subject How do I use Java Enum instead of a string into my route in spring xml
Date Mon, 28 Jan 2013 21:14:58 GMT
Hi,

If you would see my Route pasted below,I am using simple language in when
condition (e.g.<when>
          <simple>${body.entity.subject} == 'Advertising'</simple>).
Instead of above statement I want something like:
          <simple>${body.entity.subject} ==
InquiryTypeEnum.ADVERTISING.nameValue()</simple>).

I don't to achieve above whether simple language is okay or not. I was
trying with javaScript but no luck.

Thank you in advance for the help.

Here is my route:
<route id="other.inquiry.mailer"  >
      <from uri="direct:goToOther"/>
      <unmarshal ref="xstream" />
      <convertBodyTo type="com.ebates.domain.inquiry.Message" />
 	  <transacted ref="required" />
      
      <choice>
        <when>
          <simple>${body.entity.email} != null</simple>
      <setHeader
headerName="X-Email-Type"><simple>${body.emailType}</simple></setHeader>
      <setHeader
headerName="X-autologin"><simple>${body.loginHeader}</simple></setHeader>
      <to uri="bean:debugProcessor"/>
      <choice>
      <when>
          <simple>${body.entity.subject} == 'Advertising'</simple>
        <setHeader
headerName="to"><simple>${properties:cs.inquiry.advertising.emailaddress}</simple></setHeader>
      </when>
      <when>
          <simple>${body.entity.subject} == 'Affiliate Program'</simple>
          <setHeader
headerName="to"><simple>${properties:cs.inquiry.affiliate_program.emailaddress}</simple></setHeader>
      </when>
      <otherwise>
          <setHeader
headerName="to"><simple>${properties:cs.inquiry.default.emailaddress}</simple></setHeader>
      </otherwise>
      </choice>
    <setHeader
headerName="subject"><simple>${body.entity.subject}</simple></setHeader>
    <setHeader
headerName="from"><simple>${body.entity.email}</simple></setHeader>
      <to ref="otherInquiryVelocity" />
      <to uri="direct:toConsumer"/>
     
    </when>
</choice>
 </route>

Here is my Java enum:

public enum InquiryTypeEnum implements Serializable, BaseEnum {
    
    ADVERTISING(2L, "Advertising"),
   
    AFFILIATE_PROGRAM(3L, "Affiliate Program"),
   
    BECOME_AN_EBATES_MERCHANT(6L, "Become an Ebates Merchant"),
  
    CASH_BACK_CHECK(10L, "Cash Back Check"),
 
    private final String name;
    private final Long value;

    private InquiryTypeEnum(final Long v, final String n) {
        this.value = v;
        this.name = n;
    }

    public static InquiryTypeEnum fromValue(final Long v) {
        for (final InquiryTypeEnum c : InquiryTypeEnum.values()) {
            if (c.value.equals(v)) {
                return c;
            }
        }

        return null;
    }

    public static InquiryTypeEnum fromValue(final String n) {
        for (final InquiryTypeEnum c : InquiryTypeEnum.values()) {
            if (c.name.equalsIgnoreCase(n)) {
                return c;
            }
        }

        return null;
    }
}



--
View this message in context: http://camel.465427.n5.nabble.com/How-do-I-use-Java-Enum-instead-of-a-string-into-my-route-in-spring-xml-tp5726445.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Mime
View raw message