Coverage Report - org.mule.api.model.InvocationResult
 
Classes in this File Line Coverage Branch Coverage Complexity
InvocationResult
0%
0/28
0%
0/6
0
InvocationResult$State
0%
0/4
N/A
0
 
 1  
 /*
 2  
  * $Id: InvocationResult.java 20321 2010-11-24 15:21:24Z dfeist $
 3  
  * --------------------------------------------------------------------------------------
 4  
  * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
 5  
  *
 6  
  * The software in this package is published under the terms of the CPAL v1.0
 7  
  * license, a copy of which has been included with this distribution in the
 8  
  * LICENSE.txt file.
 9  
  */
 10  
 package org.mule.api.model;
 11  
 
 12  
 import org.mule.config.i18n.CoreMessages;
 13  
 
 14  
 import java.lang.reflect.Method;
 15  
 
 16  
 /**
 17  
  * Tracks the state of an invocation on a component using an {@link EntryPointResolver}
 18  
  */
 19  
 public class InvocationResult
 20  
 {
 21  0
     public static enum State {
 22  
         /** the resolver performing the invocation knows that it cannot attempt to make the invocation */
 23  0
         NOT_SUPPORTED,
 24  
         /** the invocation was successful */
 25  0
         SUCCESSFUL,
 26  
         /** The invocation was attempted but failed */
 27  0
         FAILED
 28  
     }
 29  
     @Deprecated
 30  0
     public static final State STATE_INVOKE_NOT_SUPPORTED = State.NOT_SUPPORTED;
 31  
 
 32  
     @Deprecated
 33  0
     public static final State STATE_INVOKED_SUCESSFUL = State.SUCCESSFUL;
 34  
 
 35  
     @Deprecated
 36  0
     public static final State STATE_INVOKED_FAILED = State.FAILED;
 37  
 
 38  
     private String errorMessage;
 39  
 
 40  
     /** the name of the method called for this invocation */
 41  
     private String methodCalled;
 42  
 
 43  
     /** the result of calling the invocation method */
 44  
     private Object result;
 45  
 
 46  
     /** the state of this invocation */
 47  
     private State state;
 48  
 
 49  
     /** The entry-point resolver that created this InvocationResult */
 50  
     private EntryPointResolver resolver;
 51  
 
 52  
     /**
 53  
      * Will construct an InvocationResult with a given state. The state must be either
 54  
      * {@link org.mule.api.model.InvocationResult.State#NOT_SUPPORTED} if the resolver performing the invocation knows that it cannot
 55  
      * attempt to make the invocation
 56  
      * {@link org.mule.api.model.InvocationResult.State#FAILED} If an invocation attempt is made but fails
 57  
      * {@link org.mule.api.model.InvocationResult.State#SUCCESSFUL} If the invocation was successful
 58  
      *
 59  
      * Typically, this constructor is used when the state is {@link org.mule.api.model.InvocationResult.State#NOT_SUPPORTED} or {@link org.mule.api.model.InvocationResult.State#FAILED}
 60  
      *
 61  
      * @param resolver the resolver being used to make the invocation
 62  
      * @param state the state of the result
 63  
      */
 64  
     public InvocationResult(EntryPointResolver resolver, State state)
 65  0
     {
 66  0
         this.state = state;
 67  0
         this.resolver = resolver;
 68  0
     }
 69  
 
 70  
     /**
 71  
      * Creates a result with the result payload set. The state of this result will be {@link org.mule.api.model.InvocationResult.State#SUCCESSFUL}
 72  
      * since only in this state will a result be set.
 73  
      *
 74  
      * @param resolver the resolver being used to make the invocation
 75  
      * @param result the result of a successful invocation
 76  
      * @param method the method invoke by this invocation
 77  
      */
 78  
     public InvocationResult(EntryPointResolver resolver, Object result, Method method)
 79  0
     {
 80  
 
 81  0
         this.result = result;
 82  0
         this.state = State.SUCCESSFUL;
 83  0
         this.methodCalled = method.getName();
 84  0
         this.resolver = resolver;
 85  0
     }
 86  
 
 87  
     /**
 88  
      * Returns the name of the method invoked, this property is only set if the state of the invocation is
 89  
      * {@link org.mule.api.model.InvocationResult.State#SUCCESSFUL}
 90  
      *
 91  
      * @return the name of the method invoked
 92  
      */
 93  
     public String getMethodCalled()
 94  
     {
 95  0
         return methodCalled;
 96  
     }
 97  
 
 98  
     /**
 99  
      * The result of this invocation
 100  
      *
 101  
      * @return an object or null if the result did not yield a result or because the state of this invocation result
 102  
      *         is either {@link org.mule.api.model.InvocationResult.State#NOT_SUPPORTED} or {@link org.mule.api.model.InvocationResult.State#FAILED}.
 103  
      */
 104  
     public Object getResult()
 105  
     {
 106  0
         return result;
 107  
     }
 108  
 
 109  
     /**
 110  
      * @return the state of this invocation. Possible values are:
 111  
      * {@link org.mule.api.model.InvocationResult.State#NOT_SUPPORTED} if the resolver performing the invocation knows that it cannot
 112  
      * attempt to make the invocation
 113  
      * {@link org.mule.api.model.InvocationResult.State#FAILED} If an invocation attempt is made but fails
 114  
      * {@link org.mule.api.model.InvocationResult.State#SUCCESSFUL} If the invocation was successful
 115  
      */
 116  
     public State getState()
 117  
     {
 118  0
         return state;
 119  
     }
 120  
 
 121  
     /**
 122  
      * An optional error message can be set if the invocation state is not {@link org.mule.api.model.InvocationResult.State#SUCCESSFUL}
 123  
      *
 124  
      * @param message the error message
 125  
      */
 126  
     public void setErrorMessage(String message)
 127  
     {
 128  0
         if (state == State.SUCCESSFUL)
 129  
         {
 130  0
             throw new IllegalStateException(CoreMessages.invocationSuccessfulCantSetError().toString());
 131  
         }
 132  0
         errorMessage = message;
 133  0
     }
 134  
 
 135  
     /**
 136  
      * Returns true if an error message has been set on this result, false otherwise
 137  
      *
 138  
      * @return true if an error message has been set on this result, false otherwise
 139  
      */
 140  
     public boolean hasError()
 141  
     {
 142  0
         return errorMessage != null;
 143  
     }
 144  
 
 145  
     /**
 146  
      * Returns the error message set on this result or null if none has been set
 147  
      *
 148  
      * @return the error message set on this result or null if none has been set
 149  
      */
 150  
     public String getErrorMessage()
 151  
     {
 152  0
         return (errorMessage==null ? null : resolver.getClass().getSimpleName() + ": " + errorMessage);
 153  
     }
 154  
 
 155  
     public void setErrorTooManyMatchingMethods(Object component, Class<?>[] argTypes, String methods)
 156  
     {
 157  0
         setErrorMessage(CoreMessages.tooManyAcceptableMethodsOnObjectUsingResolverForTypes(
 158  
                 component.getClass().getName(), argTypes, methods).toString());
 159  0
     }
 160  
 
 161  
     public void setErrorNoMatchingMethods(Object component, Class<?>[] args)
 162  
     {
 163  0
         setErrorMessage(CoreMessages.noEntryPointFoundWithArgsUsingResolver(
 164  
                 component.getClass().getName(), args).toString());
 165  0
     }
 166  
 
 167  
     public void setErrorNoMatchingMethodsCalled(Object component, String methods)
 168  
     {
 169  0
         setErrorMessage(CoreMessages.noMatchingMethodsOnObjectCalledUsingResolver(
 170  
                 component.getClass().getName(), methods).toString());
 171  0
     }
 172  
 
 173  
 }