View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.config.spring.factories;
8   
9   import org.mule.api.endpoint.EndpointBuilder;
10  import org.mule.api.endpoint.OutboundEndpoint;
11  import org.mule.api.processor.MessageProcessor;
12  import org.mule.api.routing.filter.Filter;
13  import org.mule.construct.Validator;
14  import org.mule.construct.builder.AbstractFlowConstructBuilder;
15  import org.mule.construct.builder.ValidatorBuilder;
16  import org.mule.routing.MessageFilter;
17  
18  public class ValidatorFactoryBean extends AbstractFlowConstructFactoryBean
19  {
20      final ValidatorBuilder validatorBuilder = new ValidatorBuilder();
21  
22      @Override
23      protected AbstractFlowConstructBuilder<ValidatorBuilder, Validator> getFlowConstructBuilder()
24      {
25          return validatorBuilder;
26      }
27  
28      public Class<?> getObjectType()
29      {
30          return Validator.class;
31      }
32  
33      public void setEndpoint(OutboundEndpoint endpoint)
34      {
35          validatorBuilder.outboundEndpoint(endpoint);
36      }
37  
38      public void setMessageProcessor(MessageProcessor processor)
39      {
40          if (processor instanceof MessageFilter)
41          {
42              validatorBuilder.validationFilter(((MessageFilter) processor).getFilter());
43          }
44          else if (processor instanceof OutboundEndpoint)
45          {
46              validatorBuilder.outboundEndpoint((OutboundEndpoint) processor);
47          }
48          else
49          {
50              throw new IllegalArgumentException("Unsupported message processor: " + processor);
51          }
52      }
53  
54      public void setInboundAddress(String inboundAddress)
55      {
56          validatorBuilder.inboundAddress(inboundAddress);
57      }
58  
59      public void setInboundEndpoint(EndpointBuilder inboundEndpointBuilder)
60      {
61          validatorBuilder.inboundEndpoint(inboundEndpointBuilder);
62      }
63  
64      public void setOutboundAddress(String outboundAddress)
65      {
66          validatorBuilder.outboundAddress(outboundAddress);
67      }
68  
69      public void setOutboundEndpoint(EndpointBuilder outboundEndpointBuilder)
70      {
71          validatorBuilder.outboundEndpoint(outboundEndpointBuilder);
72      }
73  
74      public void setAckExpression(String ackExpression)
75      {
76          validatorBuilder.ackExpression(ackExpression);
77      }
78  
79      public void setNackExpression(String nackExpression)
80      {
81          validatorBuilder.nackExpression(nackExpression);
82      }
83  
84      public void setErrorExpression(String errorExpression)
85      {
86          validatorBuilder.errorExpression(errorExpression);
87      }
88  
89      public void setValidationFilter(Filter validationFilter)
90      {
91          validatorBuilder.validationFilter(validationFilter);
92      }
93  }