home *** CD-ROM | disk | FTP | other *** search
- package mx.rpc.soap
- {
- import mx.core.mx_internal;
- import mx.logging.ILogger;
- import mx.logging.Log;
- import mx.messaging.ChannelSet;
- import mx.messaging.channels.DirectHTTPChannel;
- import mx.messaging.config.LoaderConfig;
- import mx.rpc.AbstractService;
- import mx.rpc.Fault;
- import mx.rpc.events.FaultEvent;
- import mx.utils.URLUtil;
- import mx.utils.XMLUtil;
-
- use namespace mx_internal;
-
- public class AbstractWebService extends AbstractService
- {
- private static var _directChannelSet:ChannelSet = null;
-
- public static const DEFAULT_DESTINATION_HTTP:String = "DefaultHTTP";
-
- public static const DEFAULT_DESTINATION_HTTPS:String = "DefaultHTTPS";
-
- private var _log:ILogger;
-
- private var endpointOverride:String;
-
- private var _useProxy:Boolean;
-
- private var _httpHeaders:Object;
-
- protected var _ready:Boolean;
-
- private var _xmlSpecialCharsFilter:Function;
-
- private var _description:String;
-
- private var _makeObjectsBindable:Boolean;
-
- private var _headers:Array;
-
- protected var _endpointURI:String;
-
- protected var _port:String;
-
- private var _rootURL:String;
-
- protected var destinationSet:Boolean;
-
- protected var _service:String;
-
- public function AbstractWebService(param1:String = null, param2:String = null)
- {
- super(param1);
- _useProxy = false;
- _headers = [];
- _log = Log.getLogger("mx.rpc.soap.AbstractWebService");
- if(param1 == null)
- {
- if(URLUtil.isHttpsURL(LoaderConfig.url))
- {
- super.destination = DEFAULT_DESTINATION_HTTPS;
- }
- else
- {
- super.destination = DEFAULT_DESTINATION_HTTP;
- }
- destinationSet = false;
- }
- else
- {
- destinationSet = true;
- }
- makeObjectsBindable = true;
- _ready = true;
- }
-
- mx_internal static function findJSessionID() : String
- {
- var _loc3_:Object = null;
- var _loc4_:String = null;
- var _loc5_:Number = NaN;
- var _loc6_:Array = null;
- var _loc1_:String = null;
- var _loc2_:Object = LoaderConfig.parameters;
- if(_loc2_)
- {
- _loc3_ = _loc2_.jsessionid;
- if(!_loc3_)
- {
- _loc3_ = _loc2_.JSESSIONID;
- if(!_loc3_)
- {
- _loc4_ = LoaderConfig.url;
- if(_loc4_)
- {
- _loc5_ = Number(_loc4_.lastIndexOf(";"));
- if(_loc5_ != -1)
- {
- _loc6_ = _loc4_.substring(_loc5_ + 1).split("=");
- if(_loc6_[0] == "jsessionid" || _loc6_[0] == "JSESSIONID")
- {
- _loc1_ = _loc6_[1];
- }
- }
- }
- }
- else
- {
- _loc1_ = String(_loc3_);
- }
- }
- else
- {
- _loc1_ = String(_loc3_);
- }
- }
- return _loc1_;
- }
-
- public function get port() : String
- {
- return _port;
- }
-
- public function set port(param1:String) : void
- {
- _port = param1;
- }
-
- public function getHeader(param1:QName, param2:String = null) : SOAPHeader
- {
- var _loc5_:SOAPHeader = null;
- var _loc3_:uint = _headers.length;
- var _loc4_:uint = 0;
- while(_loc4_ < _loc3_)
- {
- _loc5_ = SOAPHeader(_headers[_loc4_]);
- if(XMLUtil.qnamesEqual(_loc5_.qname,param1))
- {
- if(!param2)
- {
- return _loc5_;
- }
- if(Boolean(_loc5_.content) && Boolean(_loc5_.content[param2]))
- {
- return _loc5_;
- }
- }
- _loc4_++;
- }
- return null;
- }
-
- public function get headers() : Array
- {
- return _headers;
- }
-
- public function get description() : String
- {
- return _description;
- }
-
- override public function get destination() : String
- {
- return super.destination;
- }
-
- public function set makeObjectsBindable(param1:Boolean) : void
- {
- _makeObjectsBindable = param1;
- }
-
- override public function setRemoteCredentials(param1:String, param2:String, param3:String = null) : void
- {
- super.setRemoteCredentials(param1,param2,param3);
- }
-
- public function addHeader(param1:Object) : void
- {
- _headers.push(param1);
- }
-
- public function get endpointURI() : String
- {
- return !!endpointOverride ? endpointOverride : _endpointURI;
- }
-
- override public function set destination(param1:String) : void
- {
- super.destination = param1;
- useProxy = true;
- destinationSet = true;
- }
-
- mx_internal function getDirectChannelSet() : ChannelSet
- {
- var _loc1_:ChannelSet = null;
- if(_directChannelSet == null)
- {
- _loc1_ = new ChannelSet();
- _loc1_.addChannel(new DirectHTTPChannel("direct_http_channel"));
- _directChannelSet = _loc1_;
- }
- return _directChannelSet;
- }
-
- public function addSimpleHeader(param1:String, param2:String, param3:String, param4:String) : void
- {
- var _loc5_:Object = {};
- _loc5_[param3] = param4;
- addHeader(new SOAPHeader(new QName(param2,param1),_loc5_));
- }
-
- public function get ready() : Boolean
- {
- return _ready;
- }
-
- public function get useProxy() : Boolean
- {
- return _useProxy;
- }
-
- public function get rootURL() : String
- {
- if(_rootURL == null)
- {
- _rootURL = LoaderConfig.url;
- }
- return _rootURL;
- }
-
- public function set endpointURI(param1:String) : void
- {
- endpointOverride = param1;
- }
-
- public function removeHeader(param1:QName, param2:String = null) : void
- {
- var _loc5_:SOAPHeader = null;
- var _loc3_:uint = _headers.length;
- var _loc4_:uint = 0;
- while(_loc4_ < _loc3_)
- {
- _loc5_ = SOAPHeader(_headers[_loc4_]);
- if(XMLUtil.qnamesEqual(_loc5_.qname,param1))
- {
- if(!param2)
- {
- _headers.splice(_loc4_,1);
- return;
- }
- if(Boolean(_loc5_.content) && Boolean(_loc5_.content[param2]))
- {
- _headers.splice(_loc4_,1);
- return;
- }
- }
- _loc4_++;
- }
- }
-
- public function get xmlSpecialCharsFilter() : Function
- {
- return _xmlSpecialCharsFilter;
- }
-
- public function get service() : String
- {
- return _service;
- }
-
- public function set httpHeaders(param1:Object) : void
- {
- _httpHeaders = param1;
- }
-
- public function set useProxy(param1:Boolean) : void
- {
- var _loc2_:ChannelSet = null;
- if(param1 != _useProxy)
- {
- _useProxy = param1;
- _loc2_ = mx_internal::getDirectChannelSet();
- if(!useProxy)
- {
- if(_loc2_ != mx_internal::asyncRequest.channelSet)
- {
- mx_internal::asyncRequest.channelSet = _loc2_;
- }
- }
- else if(mx_internal::asyncRequest.channelSet == _loc2_)
- {
- mx_internal::asyncRequest.channelSet = null;
- }
- }
- }
-
- public function set rootURL(param1:String) : void
- {
- _rootURL = param1;
- }
-
- public function get httpHeaders() : Object
- {
- return _httpHeaders;
- }
-
- protected function unEnqueueCalls(param1:Fault = null) : void
- {
- var _loc2_:Operation = null;
- var _loc3_:String = null;
- for(_loc3_ in mx_internal::_operations)
- {
- _loc2_ = mx_internal::_operations[_loc3_];
- if(_loc2_.mx_internal::hasPendingInvocations())
- {
- if(param1 != null)
- {
- _log.info("Faulting previously queued operation calls {0}",_loc2_.name);
- while(_loc2_.mx_internal::hasPendingInvocations())
- {
- _loc2_.cancel();
- _loc2_.dispatchEvent(FaultEvent.createEvent(param1));
- }
- }
- else
- {
- _log.info("Invoking previously queued calls {0}",_loc2_.name);
- _loc2_.mx_internal::invokeAllPending();
- }
- }
- }
- }
-
- public function set service(param1:String) : void
- {
- _service = param1;
- }
-
- public function set xmlSpecialCharsFilter(param1:Function) : void
- {
- _xmlSpecialCharsFilter = param1;
- }
-
- public function set description(param1:String) : void
- {
- _description = param1;
- }
-
- public function clearHeaders() : void
- {
- _headers.length = 0;
- }
-
- public function get makeObjectsBindable() : Boolean
- {
- return _makeObjectsBindable;
- }
- }
- }
-
-