[picocontainer-dev] getComponentAdapter(Class,NameBinding) possible in javascript?
"Michael Rimov" <[email protected]> Thu, 16 Dec 2010 08:32:43 -0800
| Newsgroups | gmane.comp.java.picocontainer.devel |
|---|---|
| Organization | Centerline Computers, Inc |
| Message-ID | <[email protected]> |
------=_NextPart_000_019F_01CB9CFB.CFA1E890
Content-Type: text/plain;
charset="US-ASCII"
Content-Transfer-Encoding: 7bit
Test case:
Reader script = new StringReader("" +
"importClass(Packages.org.picocontainer.NameBinding);\n" +
"var pico = parent.makeChildContainer() \n" +
"pico.addComponent(Packages.org.picocontainer.script.testmodel.A)\n" +
"var ca =
pico.getComponentAdapter(Packages.org.picocontainer.script.testmodel.A,
null);\n" +
"");
PicoContainer parent = new
PicoBuilder().withLifecycle().withCaching().build();
ContainerBuilder containerBuilder = new
JavascriptContainerBuilder(script, getClass().getClassLoader());
PicoContainer pico = buildContainer(containerBuilder, parent,
"SOME_SCOPE"); //Failure here
Fails with compilation exception since there are more than one
getComponentAdapter two-arg calls.
Is there a way to cast the null value so rhino knows which method to call,
or should I implement something like NameBinding.NULL as an alternative to a
null argument? (I'm mainly interested in a Pico 3 fix).
Thanks!
-Mike
-Mike
------=_NextPart_000_019F_01CB9CFB.CFA1E890
Content-Type: text/html;
charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii"><meta name=3DGenerator content=3D"Microsoft Word 14 =
(filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri","sans-serif";}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-US link=3Dblue =
vlink=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal>Test =
case:<o:p></o:p></p><p class=3DMsoNormal><o:p> </o:p></p><p =
class=3DMsoNormal style=3D'text-autospace:none'><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'> Reader =
script =3D </span><b><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#7F0055'>new</span></b><span =
style=3D'font-size:10.0pt;font-family:"Courier New";color:black'> =
StringReader(</span><span style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#2A00FF'>""</span><span =
style=3D'font-size:10.0pt;font-family:"Courier New";color:black'> =
+</span><span style=3D'font-size:10.0pt;font-family:"Courier =
New"'><o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'text-autospace:none'><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'> =
</span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#2A00FF'>"importClass(Packages.org.picocontainer.NameBind=
ing);\n"</span><span style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'> +</span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'><o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'text-autospace:none'><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'> &=
nbsp; </span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#2A00FF'>"var pico =3D parent.makeChildContainer() =
\n"</span><span style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'> +</span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'><o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'text-autospace:none'><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'> &=
nbsp; </span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#2A00FF'>"pico.addComponent(Packages.org.picocontainer.sc=
ript.testmodel.A)\n"</span><span =
style=3D'font-size:10.0pt;font-family:"Courier New";color:black'> =
+</span><span style=3D'font-size:10.0pt;font-family:"Courier =
New"'><o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'text-autospace:none'><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'> &=
nbsp; </span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#2A00FF'>"var ca =3D =
pico.getComponentAdapter(Packages.org.picocontainer.script.testmodel.A, =
null);\n"</span><span =
style=3D'font-size:10.0pt;font-family:"Courier New";color:black'> =
+</span><span style=3D'font-size:10.0pt;font-family:"Courier =
New"'><o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'text-autospace:none'><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'> &=
nbsp; </span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#2A00FF'>""</span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'>);</span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'><o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'text-autospace:none'><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'> =
PicoContainer parent =3D </span><b><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#7F0055'>new</span></b><span =
style=3D'font-size:10.0pt;font-family:"Courier New";color:black'> =
PicoBuilder().withLifecycle().withCaching().build();</span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'><o:p></o:p></span></p><p class=3DMsoNormal =
style=3D'text-autospace:none'><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'> =
ContainerBuilder containerBuilder =3D </span><b><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#7F0055'>new</span></b><span =
style=3D'font-size:10.0pt;font-family:"Courier New";color:black'> =
JavascriptContainerBuilder(script, =
getClass().getClassLoader());</span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New"'><o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'> =
PicoContainer pico =3D buildContainer(containerBuilder, parent, =
</span><span style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#2A00FF'>"SOME_SCOPE"</span><span =
style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>); =
//Failure here <o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'><o:p> </o:p></span></p><p class=3DMsoNormal>Fails =
with compilation exception since there are more than one =
getComponentAdapter two-arg calls.<o:p></o:p></p><p =
class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>Is there a =
way to cast the null value so rhino knows which method to call, or =
should I implement something like NameBinding.NULL as an alternative to =
a null argument? (I’m mainly interested in a Pico 3 =
fix).<o:p></o:p></p><p class=3DMsoNormal><o:p> </o:p></p><p =
class=3DMsoNormal>Thanks!<o:p></o:p></p><p =
class=3DMsoNormal><o:p> </o:p></p><p =
class=3DMsoNormal> &=
nbsp; &n=
bsp; &nb=
sp; &nbs=
p;  =
; =
&=
nbsp; &n=
bsp; &nb=
sp; &nbs=
p; =
-Mike<o:p></o:p></p><p class=3DMsoNormal><o:p> </o:p></p><p =
class=3DMsoNormal><o:p> </o:p></p><p =
class=3DMsoNormal> &=
nbsp; &n=
bsp; &nb=
sp; &nbs=
p;  =
; =
&=
nbsp; &n=
bsp; &nb=
sp; &nbs=
p;  =
; =
&=
nbsp; -Mike<o:p></o:p></p><p =
class=3DMsoNormal><o:p> </o:p></p></div></body></html>
------=_NextPart_000_019F_01CB9CFB.CFA1E890--