//////////////////////////////////////////////////////////////////////////////// // // Licensed to the Apache Software Foundation (ASF) under one or more // contributor license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright ownership. // The ASF licenses this file to You 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 mx.collections { import mx.rpc.IResponder; /** * The ItemResponder class provides a default implementation of the * mx.rpc.IResponder interface. * It represents a responder that lets you specify methods to be * called when a request is completed, either successfully or with an error. * The class object can also lets you provide data (a token) to be used by * the responder methods. * *

You use an ItemResponder object in the catch statement * of a try block that might result in getting remote data, as shown in the following * code:

* *

 *     import mx.collections.ItemResponder;
 *     //...
 *
 *     try
 *     {
 *        //...
 *        cursor.moveNext();
 *     }
 *	   catch(e:ItemPendingError)
 *     {
 *        e.addResponder(new ItemResponder(myResultFunction, myFaultFunction, {info:"..."}));
 *     }
 *  
* *

The result method specified must have the following signature:

* *
 *     public function myResultFunction(result:Object, token:Object = null):void;
 *  
* *

The fault method specified must have the following signature:

* *
 *     public function myFaultFunction(error:Object, token:Object = null):void;
 *  
* *

Any other signature will result in a runtime error.

* * @see mx.collections.errors.ItemPendingError * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public class ItemResponder implements IResponder { include "../core/Version.as"; //-------------------------------------------------------------------------- // // Constructor // //-------------------------------------------------------------------------- /** * Constructs an instance of the responder with the specified data and * handlers. * * @param result Function that should be called when the request has * completed successfully. * Must have the following signature: *
	 *     		    public function (result:Object, token:Object = null):void;
	 *  		
* @param fault Function that should be called when the request has * completed with errors. * Must have the following signature: *
	 *     		    public function (error:ErrorMessage, token:Object = null):void;
	 *  		
* @param token Object [optional] additional information to associate with * this request. This object is passed to the result and fault functions * as their second parameter. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public function ItemResponder(result:Function, fault:Function, token:Object = null) { super(); _resultHandler = result; _faultHandler = fault; _token = token; } //-------------------------------------------------------------------------- // // Methods // //-------------------------------------------------------------------------- /** * This method is called by a service when the return value has been * received. * * @param data Object containing the information returned from the request. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public function result(data:Object):void { _resultHandler(data, _token); } /** * This method is called by a service when an error has been received. * * @param info Object containing the information about the error that * occured. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public function fault(info:Object):void { _faultHandler(info, _token); } //-------------------------------------------------------------------------- // // Variables // //-------------------------------------------------------------------------- private var _resultHandler:Function; private var _faultHandler:Function; private var _token:Object; } }