Coverage Report - org.mule.expression.ExpressionConfig
 
Classes in this File Line Coverage Branch Coverage Complexity
ExpressionConfig
0%
0/49
0%
0/16
2.083
 
 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.expression;
 8  
 
 9  
 import org.mule.api.expression.ExpressionManager;
 10  
 import org.mule.config.i18n.CoreMessages;
 11  
 import org.mule.util.StringUtils;
 12  
 
 13  
 /**
 14  
  * A simple configuration object for holding the common Expression evaluator configuration.
 15  
  * The {@link #getFullExpression(ExpressionManager)} will return the evaluator and expression 
 16  
  * information in a format that can be passed into the {@link DefaultExpressionManager}
 17  
  */
 18  
 public class ExpressionConfig
 19  
 {
 20  
     public static final String CUSTOM_EVALUATOR = "custom";
 21  
     public static final String EXPRESSION_SEPARATOR = ":";
 22  
     private String expression;
 23  
 
 24  
     private String evaluator;
 25  
 
 26  
     private String customEvaluator;
 27  
 
 28  
     private String fullExpression;
 29  
 
 30  0
     private String expressionPrefix = ExpressionManager.DEFAULT_EXPRESSION_PREFIX;
 31  0
     private String expressionPostfix = ExpressionManager.DEFAULT_EXPRESSION_POSTFIX;
 32  
 
 33  
     public ExpressionConfig()
 34  
     {
 35  0
         super();
 36  0
     }
 37  
 
 38  
     public ExpressionConfig(String expression, String evaluator, String customEvaluator)
 39  
     {
 40  0
         this(expression, evaluator, customEvaluator,
 41  
                 ExpressionManager.DEFAULT_EXPRESSION_PREFIX,
 42  
                 ExpressionManager.DEFAULT_EXPRESSION_POSTFIX);
 43  
 
 44  0
     }
 45  
 
 46  
     public ExpressionConfig(String expression, String evaluator, String customEvaluator, String expressionPrefix, String expressionPostfix)
 47  0
     {
 48  0
         setCustomEvaluator(customEvaluator);
 49  0
         setEvaluator(evaluator);
 50  0
         setExpression(expression);
 51  0
         this.expressionPostfix = expressionPostfix;
 52  0
         this.expressionPrefix = expressionPrefix;
 53  0
     }
 54  
 
 55  
     public void parse(String expressionString)
 56  
     {
 57  0
         if(expressionString.startsWith(expressionPrefix))
 58  
         {
 59  0
             expressionString = expressionString.substring(expressionPrefix.length());
 60  0
             expressionString = expressionString.substring(0, expressionString.length() - expressionPostfix.length());
 61  
         }
 62  
         
 63  0
         int i = expressionString.indexOf(EXPRESSION_SEPARATOR);
 64  0
         if(i < 0)
 65  
         {
 66  0
             throw new IllegalArgumentException("Expression is invalid: " + expressionString);
 67  
         }
 68  0
         this.evaluator = expressionString.substring(0, i);
 69  0
         this.expression = expressionString.substring(i+1);
 70  0
     }
 71  
 
 72  
     public void validate(ExpressionManager manager)
 73  
     {
 74  0
         if (expression == null)
 75  
         {
 76  0
             throw new IllegalArgumentException(CoreMessages.objectIsNull("expression").getMessage());
 77  
         }
 78  0
         if (evaluator == null)
 79  
         {
 80  0
             throw new IllegalArgumentException(CoreMessages.objectIsNull("evaluator").getMessage());
 81  
         }
 82  0
         if (CUSTOM_EVALUATOR.equalsIgnoreCase(evaluator))
 83  
         {
 84  0
             if (customEvaluator == null)
 85  
             {
 86  0
                 throw new IllegalArgumentException(CoreMessages.objectIsNull("custom evaluator").getMessage());
 87  
             }
 88  
             else
 89  
             {
 90  0
                 evaluator = customEvaluator;
 91  
             }
 92  
         }
 93  
 
 94  0
         if (!manager.isEvaluatorRegistered(evaluator))
 95  
         {
 96  0
             throw new IllegalArgumentException(CoreMessages.expressionEvaluatorNotRegistered(evaluator).getMessage());
 97  
         }
 98  0
     }
 99  
 
 100  
     public String getFullExpression(ExpressionManager manager)
 101  
     {
 102  0
         if (fullExpression == null)
 103  
         {
 104  0
             validate(manager);
 105  0
             fullExpression = expressionPrefix + evaluator + EXPRESSION_SEPARATOR + expression + expressionPostfix;
 106  
         }
 107  0
         return fullExpression;
 108  
     }
 109  
 
 110  
     public String getCustomEvaluator()
 111  
     {
 112  0
         return customEvaluator;
 113  
     }
 114  
 
 115  
     public void setCustomEvaluator(String customEvaluator)
 116  
     {
 117  0
         this.customEvaluator = StringUtils.trimToNull(customEvaluator);
 118  0
         fullExpression=null;        
 119  0
     }
 120  
 
 121  
     public String getEvaluator()
 122  
     {
 123  0
         return evaluator;
 124  
     }
 125  
 
 126  
     public void setEvaluator(String evaluator)
 127  
     {
 128  0
         this.evaluator = StringUtils.trimToNull(evaluator);
 129  0
         fullExpression=null;
 130  0
     }
 131  
 
 132  
     public String getExpression()
 133  
     {
 134  0
         return expression;
 135  
     }
 136  
 
 137  
     public void setExpression(String expression)
 138  
     {
 139  0
         this.expression = StringUtils.trimToEmpty(expression);
 140  0
         fullExpression=null;
 141  0
     }
 142  
 }