<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<TITLE>Message</TITLE>

<META content="MSHTML 6.00.2800.1476" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN 
class=430533513-22122004>Hi</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=430533513-22122004></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=430533513-22122004>I am trying to build 
a capability based API. That is, an instance of the api will reflect the 
capabilities of some underlying services. I could have several different 
instances of the api concurrently running against different back end services. A 
ui applet will bind to an api instance. I want to make this easy to use from the 
ui perspective so I envisage exposing a number of properties as the variable 
part can be represented by properties. I want a property to exist only if a 
capability is available so it is easily tested. I have tried using Property and 
Metaclasses to do this and although both work I can't figure out how to make 
multiple different instances as both get executed on 'import' and thus only one 
instance can be created. Inside the metaclass I have to get hold of the 
capability map I want to build the instance against. The only way I can see to 
do this at the moment is to have a metaclass for each capability type and 
hardcode the type inside it, then pick the appropriate metaclass when I build 
the implementation class.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=430533513-22122004></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=430533513-22122004>Regards</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=430533513-22122004>Bob</SPAN></FONT></DIV>
<DIV> </DIV>
<DIV align=left><FONT face=Arial size=2></FONT> </DIV>
<DIV align=left><FONT face=Arial size=2></FONT> </DIV>
<DIV align=left><FONT face=Arial size=2>Bob Cowdery</FONT></DIV>
<DIV align=left><FONT face=Arial size=2>CGI Senior Technical 
Architect</FONT></DIV>
<DIV align=left><FONT face=Arial size=2>+44(0)1438 791517</FONT></DIV>
<DIV align=left><FONT face=Arial size=2>Mobile: +44(0)7771 532138</FONT></DIV>
<DIV align=left><FONT face=Arial size=2><A 
href="mailto:bob.cowdery@cgi-europe.com">bob.cowdery@cgi-europe.com</A></FONT></DIV>
<DIV align=left><FONT face=Arial size=2></FONT> </DIV>
<DIV align=left><FONT face=Arial size=2></FONT> </DIV>
<DIV> </DIV>
<P><STRONG>*** Confidentiality Notice ***</STRONG> 
Proprietary/Confidential<BR>Information belonging to CGI Group Inc. and its 
affiliates<BR>may be contained in this message. If you are not a 
recipient<BR>indicated or intended in this message (or responsible 
for<BR>delivery of this message to such person), or you think for<BR>any reason 
that this message may have been addressed to you<BR>in error, you may not use or 
copy or deliver this message<BR>to anyone else.  In such case, you should 
destroy this<BR>message and are asked to notify the sender by reply 
email.</P>
</BODY></HTML>