| /* |
| * Copyright 2004,2005 The Apache Software Foundation. |
| * |
| * 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 org.apache.axis2.client.async; |
| |
| /** |
| * Base class for asynchronous client callback handler. The application code |
| * needs to create an instance of this class (actually an instance of a |
| * subclass, since this base class cannot be used directly) and pass it to the |
| * generated startXXX client stub method when initiating an asynchronous |
| * operation. The Axis2 code then calls the appropriate methods of this class |
| * {@link #setComplete(boolean)}, and either {@link #onComplete(AsyncResult)} |
| * or {@link #onError(Exception)} when the operation is completed. |
| */ |
| public abstract class Callback { |
| |
| /** |
| * Field complete |
| */ |
| private boolean complete; |
| |
| /** |
| * Method is invoked by Axis2 once the asynchronous operation has completed |
| * successfully. |
| * |
| * @param result |
| */ |
| public abstract void onComplete(AsyncResult result); |
| |
| /** |
| * Method invoked by Axis2 if the asynchronous operation fails. |
| * |
| * @param e |
| */ |
| public abstract void onError(Exception e); |
| |
| /** |
| * Returns true if the asynchronous operation has completed, false otherwise. Typically this is |
| * used for polling. e.g. |
| * <code> |
| * <pre> |
| * while(!callback.isComplete()){ |
| * Thread.sleep(1000); |
| * } |
| * do whatever u need to do |
| * </pre> |
| * </code> |
| * |
| * @return boolean |
| */ |
| public synchronized boolean isComplete() { |
| return complete; |
| } |
| |
| /** |
| * Method invoked by Axis2 to set the completion state of the operation. |
| * |
| * @param complete |
| */ |
| public synchronized void setComplete(boolean complete) { |
| this.complete = complete; |
| } |
| } |