////////////////////////////////////////////////////////////////////////////////
//
// 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;
}
}