[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>&nbsp;</o:p></p><p =
class=3DMsoNormal style=3D'text-autospace:none'><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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'>&quot;&quot;</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#2A00FF'>&quot;importClass(Packages.org.picocontainer.NameBind=
ing);\n&quot;</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#2A00FF'>&quot;var pico =3D parent.makeChildContainer() =
\n&quot;</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#2A00FF'>&quot;pico.addComponent(Packages.org.picocontainer.sc=
ript.testmodel.A)\n&quot;</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#2A00FF'>&quot;var ca =3D =
pico.getComponentAdapter(Packages.org.picocontainer.script.testmodel.A, =
null);\n&quot;</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#2A00FF'>&quot;&quot;</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
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'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
PicoContainer pico =3D buildContainer(containerBuilder, parent, =
</span><span style=3D'font-size:10.0pt;font-family:"Courier =
New";color:#2A00FF'>&quot;SOME_SCOPE&quot;</span><span =
style=3D'font-size:10.0pt;font-family:"Courier New";color:black'>); =
//Failure here&nbsp; <o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Courier =
New";color:black'><o:p>&nbsp;</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>&nbsp;</o:p></p><p class=3DMsoNormal>Is there a =
way to cast the null value so rhino knows which method to call, &nbsp;or =
should I implement something like NameBinding.NULL as an alternative to =
a null argument?&nbsp; &nbsp;(I&#8217;m mainly interested in a Pico 3 =
fix).<o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal>Thanks!<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
-Mike<o:p></o:p></p><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp; -Mike<o:p></o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div></body></html>
------=_NextPart_000_019F_01CB9CFB.CFA1E890--