I traced through the code, com.adobe.cairngorm.business.ServiceLocator
refers to itself as "this" when looking up a service:
private function getServiceForId( serviceId : String ) : Object
{
if ( this[ serviceId ] == null )
{
throw new CairngormError(
CairngormMessageCodes.NO_SERVICE_FOUND, serviceId );
}
return this[ serviceId ];
}
Except, in my case, there's no "projectService" associated with
com.adobe.cairngorm.business.ServiceLocator, I've specified it in a
Services.mxml file - How come I'm not running Services.getWebService()
instead of ServiceLocator.getWebService() ?
Jay Proulx
[EMAIL PROTECTED]
________________________________
From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Clint Modien
Sent: January 5, 2007 3:00 PM
To: [email protected]
Cc: Ben Lucyk
Subject: RE: [flexcoders] Cairngorm ServiceLocator
The code is opensource so you can see how it works... here's the call it
makes. (This is cairngorm v2)
________________________________
From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of [EMAIL PROTECTED]
Sent: Friday, January 05, 2007 10:53 AM
To: [email protected]
Subject: [flexcoders] Cairngorm ServiceLocator
I'm a little confused.
How come I can ask com.adobe.cairngorm.business.ServiceLocator for a
service from an MXML component which is a "sub-class" of ServiceLocator?
i.e.:
Services.mxml:
<cairngorm:ServiceLocator ...>
<mx:WebService name="myService" ... />
</cairngorm:ServiceLocator>
var theService =
ServiceLocator.getInstance().getWebService("myService");
How does ServiceLocator know what a "myService" is? It's not defined in
ServiceLocator.as.
It works, I just don't understand why... What is the relationship
between an MXML file and an AS class that makes this happen?
Jay Proulx
Application Developer
Internet Delivery Services - eVision Team
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
(613) 783-6711