home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Darbas / kidoz_v1.air / kidoz.swf / scripts / mx / rpc / soap / AbstractWebService.as next >
Encoding:
Text File  |  2009-05-06  |  10.0 KB  |  366 lines

  1. package mx.rpc.soap
  2. {
  3.    import mx.core.mx_internal;
  4.    import mx.logging.ILogger;
  5.    import mx.logging.Log;
  6.    import mx.messaging.ChannelSet;
  7.    import mx.messaging.channels.DirectHTTPChannel;
  8.    import mx.messaging.config.LoaderConfig;
  9.    import mx.rpc.AbstractService;
  10.    import mx.rpc.Fault;
  11.    import mx.rpc.events.FaultEvent;
  12.    import mx.utils.URLUtil;
  13.    import mx.utils.XMLUtil;
  14.    
  15.    use namespace mx_internal;
  16.    
  17.    public class AbstractWebService extends AbstractService
  18.    {
  19.       private static var _directChannelSet:ChannelSet = null;
  20.       
  21.       public static const DEFAULT_DESTINATION_HTTP:String = "DefaultHTTP";
  22.       
  23.       public static const DEFAULT_DESTINATION_HTTPS:String = "DefaultHTTPS";
  24.       
  25.       private var _log:ILogger;
  26.       
  27.       private var endpointOverride:String;
  28.       
  29.       private var _useProxy:Boolean;
  30.       
  31.       private var _httpHeaders:Object;
  32.       
  33.       protected var _ready:Boolean;
  34.       
  35.       private var _xmlSpecialCharsFilter:Function;
  36.       
  37.       private var _description:String;
  38.       
  39.       private var _makeObjectsBindable:Boolean;
  40.       
  41.       private var _headers:Array;
  42.       
  43.       protected var _endpointURI:String;
  44.       
  45.       protected var _port:String;
  46.       
  47.       private var _rootURL:String;
  48.       
  49.       protected var destinationSet:Boolean;
  50.       
  51.       protected var _service:String;
  52.       
  53.       public function AbstractWebService(param1:String = null, param2:String = null)
  54.       {
  55.          super(param1);
  56.          _useProxy = false;
  57.          _headers = [];
  58.          _log = Log.getLogger("mx.rpc.soap.AbstractWebService");
  59.          if(param1 == null)
  60.          {
  61.             if(URLUtil.isHttpsURL(LoaderConfig.url))
  62.             {
  63.                super.destination = DEFAULT_DESTINATION_HTTPS;
  64.             }
  65.             else
  66.             {
  67.                super.destination = DEFAULT_DESTINATION_HTTP;
  68.             }
  69.             destinationSet = false;
  70.          }
  71.          else
  72.          {
  73.             destinationSet = true;
  74.          }
  75.          makeObjectsBindable = true;
  76.          _ready = true;
  77.       }
  78.       
  79.       mx_internal static function findJSessionID() : String
  80.       {
  81.          var _loc3_:Object = null;
  82.          var _loc4_:String = null;
  83.          var _loc5_:Number = NaN;
  84.          var _loc6_:Array = null;
  85.          var _loc1_:String = null;
  86.          var _loc2_:Object = LoaderConfig.parameters;
  87.          if(_loc2_)
  88.          {
  89.             _loc3_ = _loc2_.jsessionid;
  90.             if(!_loc3_)
  91.             {
  92.                _loc3_ = _loc2_.JSESSIONID;
  93.                if(!_loc3_)
  94.                {
  95.                   _loc4_ = LoaderConfig.url;
  96.                   if(_loc4_)
  97.                   {
  98.                      _loc5_ = Number(_loc4_.lastIndexOf(";"));
  99.                      if(_loc5_ != -1)
  100.                      {
  101.                         _loc6_ = _loc4_.substring(_loc5_ + 1).split("=");
  102.                         if(_loc6_[0] == "jsessionid" || _loc6_[0] == "JSESSIONID")
  103.                         {
  104.                            _loc1_ = _loc6_[1];
  105.                         }
  106.                      }
  107.                   }
  108.                }
  109.                else
  110.                {
  111.                   _loc1_ = String(_loc3_);
  112.                }
  113.             }
  114.             else
  115.             {
  116.                _loc1_ = String(_loc3_);
  117.             }
  118.          }
  119.          return _loc1_;
  120.       }
  121.       
  122.       public function get port() : String
  123.       {
  124.          return _port;
  125.       }
  126.       
  127.       public function set port(param1:String) : void
  128.       {
  129.          _port = param1;
  130.       }
  131.       
  132.       public function getHeader(param1:QName, param2:String = null) : SOAPHeader
  133.       {
  134.          var _loc5_:SOAPHeader = null;
  135.          var _loc3_:uint = _headers.length;
  136.          var _loc4_:uint = 0;
  137.          while(_loc4_ < _loc3_)
  138.          {
  139.             _loc5_ = SOAPHeader(_headers[_loc4_]);
  140.             if(XMLUtil.qnamesEqual(_loc5_.qname,param1))
  141.             {
  142.                if(!param2)
  143.                {
  144.                   return _loc5_;
  145.                }
  146.                if(Boolean(_loc5_.content) && Boolean(_loc5_.content[param2]))
  147.                {
  148.                   return _loc5_;
  149.                }
  150.             }
  151.             _loc4_++;
  152.          }
  153.          return null;
  154.       }
  155.       
  156.       public function get headers() : Array
  157.       {
  158.          return _headers;
  159.       }
  160.       
  161.       public function get description() : String
  162.       {
  163.          return _description;
  164.       }
  165.       
  166.       override public function get destination() : String
  167.       {
  168.          return super.destination;
  169.       }
  170.       
  171.       public function set makeObjectsBindable(param1:Boolean) : void
  172.       {
  173.          _makeObjectsBindable = param1;
  174.       }
  175.       
  176.       override public function setRemoteCredentials(param1:String, param2:String, param3:String = null) : void
  177.       {
  178.          super.setRemoteCredentials(param1,param2,param3);
  179.       }
  180.       
  181.       public function addHeader(param1:Object) : void
  182.       {
  183.          _headers.push(param1);
  184.       }
  185.       
  186.       public function get endpointURI() : String
  187.       {
  188.          return !!endpointOverride ? endpointOverride : _endpointURI;
  189.       }
  190.       
  191.       override public function set destination(param1:String) : void
  192.       {
  193.          super.destination = param1;
  194.          useProxy = true;
  195.          destinationSet = true;
  196.       }
  197.       
  198.       mx_internal function getDirectChannelSet() : ChannelSet
  199.       {
  200.          var _loc1_:ChannelSet = null;
  201.          if(_directChannelSet == null)
  202.          {
  203.             _loc1_ = new ChannelSet();
  204.             _loc1_.addChannel(new DirectHTTPChannel("direct_http_channel"));
  205.             _directChannelSet = _loc1_;
  206.          }
  207.          return _directChannelSet;
  208.       }
  209.       
  210.       public function addSimpleHeader(param1:String, param2:String, param3:String, param4:String) : void
  211.       {
  212.          var _loc5_:Object = {};
  213.          _loc5_[param3] = param4;
  214.          addHeader(new SOAPHeader(new QName(param2,param1),_loc5_));
  215.       }
  216.       
  217.       public function get ready() : Boolean
  218.       {
  219.          return _ready;
  220.       }
  221.       
  222.       public function get useProxy() : Boolean
  223.       {
  224.          return _useProxy;
  225.       }
  226.       
  227.       public function get rootURL() : String
  228.       {
  229.          if(_rootURL == null)
  230.          {
  231.             _rootURL = LoaderConfig.url;
  232.          }
  233.          return _rootURL;
  234.       }
  235.       
  236.       public function set endpointURI(param1:String) : void
  237.       {
  238.          endpointOverride = param1;
  239.       }
  240.       
  241.       public function removeHeader(param1:QName, param2:String = null) : void
  242.       {
  243.          var _loc5_:SOAPHeader = null;
  244.          var _loc3_:uint = _headers.length;
  245.          var _loc4_:uint = 0;
  246.          while(_loc4_ < _loc3_)
  247.          {
  248.             _loc5_ = SOAPHeader(_headers[_loc4_]);
  249.             if(XMLUtil.qnamesEqual(_loc5_.qname,param1))
  250.             {
  251.                if(!param2)
  252.                {
  253.                   _headers.splice(_loc4_,1);
  254.                   return;
  255.                }
  256.                if(Boolean(_loc5_.content) && Boolean(_loc5_.content[param2]))
  257.                {
  258.                   _headers.splice(_loc4_,1);
  259.                   return;
  260.                }
  261.             }
  262.             _loc4_++;
  263.          }
  264.       }
  265.       
  266.       public function get xmlSpecialCharsFilter() : Function
  267.       {
  268.          return _xmlSpecialCharsFilter;
  269.       }
  270.       
  271.       public function get service() : String
  272.       {
  273.          return _service;
  274.       }
  275.       
  276.       public function set httpHeaders(param1:Object) : void
  277.       {
  278.          _httpHeaders = param1;
  279.       }
  280.       
  281.       public function set useProxy(param1:Boolean) : void
  282.       {
  283.          var _loc2_:ChannelSet = null;
  284.          if(param1 != _useProxy)
  285.          {
  286.             _useProxy = param1;
  287.             _loc2_ = mx_internal::getDirectChannelSet();
  288.             if(!useProxy)
  289.             {
  290.                if(_loc2_ != mx_internal::asyncRequest.channelSet)
  291.                {
  292.                   mx_internal::asyncRequest.channelSet = _loc2_;
  293.                }
  294.             }
  295.             else if(mx_internal::asyncRequest.channelSet == _loc2_)
  296.             {
  297.                mx_internal::asyncRequest.channelSet = null;
  298.             }
  299.          }
  300.       }
  301.       
  302.       public function set rootURL(param1:String) : void
  303.       {
  304.          _rootURL = param1;
  305.       }
  306.       
  307.       public function get httpHeaders() : Object
  308.       {
  309.          return _httpHeaders;
  310.       }
  311.       
  312.       protected function unEnqueueCalls(param1:Fault = null) : void
  313.       {
  314.          var _loc2_:Operation = null;
  315.          var _loc3_:String = null;
  316.          for(_loc3_ in mx_internal::_operations)
  317.          {
  318.             _loc2_ = mx_internal::_operations[_loc3_];
  319.             if(_loc2_.mx_internal::hasPendingInvocations())
  320.             {
  321.                if(param1 != null)
  322.                {
  323.                   _log.info("Faulting previously queued operation calls {0}",_loc2_.name);
  324.                   while(_loc2_.mx_internal::hasPendingInvocations())
  325.                   {
  326.                      _loc2_.cancel();
  327.                      _loc2_.dispatchEvent(FaultEvent.createEvent(param1));
  328.                   }
  329.                }
  330.                else
  331.                {
  332.                   _log.info("Invoking previously queued calls {0}",_loc2_.name);
  333.                   _loc2_.mx_internal::invokeAllPending();
  334.                }
  335.             }
  336.          }
  337.       }
  338.       
  339.       public function set service(param1:String) : void
  340.       {
  341.          _service = param1;
  342.       }
  343.       
  344.       public function set xmlSpecialCharsFilter(param1:Function) : void
  345.       {
  346.          _xmlSpecialCharsFilter = param1;
  347.       }
  348.       
  349.       public function set description(param1:String) : void
  350.       {
  351.          _description = param1;
  352.       }
  353.       
  354.       public function clearHeaders() : void
  355.       {
  356.          _headers.length = 0;
  357.       }
  358.       
  359.       public function get makeObjectsBindable() : Boolean
  360.       {
  361.          return _makeObjectsBindable;
  362.       }
  363.    }
  364. }
  365.  
  366.