| /* |
| * Copyright 2010 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| package com.google.web.bindery.requestfactory.shared; |
| |
| /** |
| * Describes a request failure on the server. |
| * <p> |
| * This error reporting mechanism is adequate at best. When RequestFactory is |
| * extended to handle polymorphic types, this class will likely be replaced with |
| * something more expressive. |
| */ |
| public class ServerFailure { |
| private final String message; |
| private final String stackTraceString; |
| private final String exceptionType; |
| private final boolean fatal; |
| private RequestContext requestContext; |
| |
| /** |
| * Constructs a ServerFailure with null properties. |
| */ |
| public ServerFailure() { |
| this(null); |
| } |
| |
| /** |
| * Constructs a fatal ServerFailure with null type and null stack trace. |
| */ |
| public ServerFailure(String message) { |
| this(message, null, null, true); |
| } |
| |
| /** |
| * Constructs a ServerFailure object. |
| * |
| * @param message a String containing the failure message |
| * @param exceptionType a String containing the exception type |
| * @param stackTraceString a String containing the stack trace |
| */ |
| public ServerFailure(String message, String exceptionType, String stackTraceString, boolean fatal) { |
| this.message = message; |
| this.exceptionType = exceptionType; |
| this.stackTraceString = stackTraceString; |
| this.fatal = fatal; |
| } |
| |
| /** |
| * Return the exception type. |
| * |
| * @return the exception type as a String |
| */ |
| public String getExceptionType() { |
| return exceptionType; |
| } |
| |
| /** |
| * Return the failure message. |
| * |
| * @return the message as a String |
| */ |
| public String getMessage() { |
| return message; |
| } |
| |
| /** |
| * Returns the RequestContext that triggered the ServerFailure. |
| */ |
| public RequestContext getRequestContext() { |
| return requestContext; |
| } |
| |
| /** |
| * Return the failure stack trace. |
| * |
| * @return the stack trace as a String |
| */ |
| public String getStackTraceString() { |
| return stackTraceString; |
| } |
| |
| /** |
| * Return true if this is a fatal error. The default implementation of |
| * {@link Receiver#onFailure} throws a runtime exception for fatal failures. |
| * |
| * @return whether this is a fatal failure |
| */ |
| public boolean isFatal() { |
| return fatal; |
| } |
| |
| /** |
| * Sets the RequestContext to return via {@link #getRequestContext()}. |
| */ |
| public void setRequestContext(RequestContext requestContext) { |
| this.requestContext = requestContext; |
| } |
| } |