001 /**
002 *
003 * Copyright 2003-2004 The Apache Software Foundation
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018 package org.apache.geronimo.interceptor;
019
020 import java.io.Serializable;
021
022 import org.apache.geronimo.interceptor.InvocationResult;
023
024 /**
025 *
026 *
027 *
028 * @version $Rev: 417891 $ $Date: 2006-06-28 15:45:07 -0700 (Wed, 28 Jun 2006) $
029 */
030 public class SimpleInvocationResult implements InvocationResult, Serializable {
031 private final Object result;
032 private final boolean normal;
033
034 /**
035 * Create a object representing the normal result of an Invocation
036 * @param normal true if the target returned; false if it threw an application Exception
037 * @param result the result or Exception
038 */
039 public SimpleInvocationResult(boolean normal, Object result) {
040 assert (normal || result instanceof Throwable) : "Result must be normal or a Throwable";
041 this.normal = normal;
042 this.result = result;
043 }
044
045 public boolean isNormal() {
046 return normal;
047 }
048
049 public boolean isException() {
050 return !normal;
051 }
052
053 public Object getResult() {
054 assert (normal == true);
055 return result;
056 }
057
058 public Exception getException() {
059 assert (normal == false);
060 return (Exception) result;
061 }
062 }