Re: [picocontainer-dev] JSR330 work progress

Paul Hammant <[email protected]> Tue, 3 Aug 2010 06:34:24 -0500
Newsgroups gmane.comp.java.picocontainer.devel
Message-ID <[email protected]>
--00c09f923134f891e8048ce9b210
Content-Type: text/plain; charset=ISO-8859-1

OK, so one helper class gets me going in lieu of the applicable methods in
JType:

public class JTypeHelper {

    public static final Generic INTEGER = Generic.get(Integer.class);
    public static final Generic LONG = Generic.get(Long.class);
    public static final Generic FLOAT = Generic.get(Float.class);
    public static final Generic DOUBLE = Generic.get(Double.class);
    public static final Generic BOOLEAN = Generic.get(Boolean.class);
    public static final Generic CHARACTER = Generic.get(Character.class);
    public static final Generic SHORT = Generic.get(Short.class);
    public static final Generic BYTE = Generic.get(Byte.class);
    public static final Generic VOID = Generic.get(Void.TYPE);

    public static boolean isAssignableFrom(Generic<?> generic, Class<?>
aClass) {
        if (generic.getType() instanceof Class) {
            return ((Class) generic.getType()).isAssignableFrom(aClass);
        }
        return false;
    }

    public static boolean isAssignableTo(Generic<?> generic, Class aClass) {
        if (generic.getType() instanceof Class) {
            return aClass.isAssignableFrom((Class<?>) generic.getType());
        }
        return false;
    }

    public static boolean isPrimitive(Generic<?> generic) {
        return generic.getType() instanceof Class && ((Class)
generic.getType()).isPrimitive();
    }

}

--00c09f923134f891e8048ce9b210
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

OK, so one helper class gets me going in lieu of the applicable methods in =
JType:<div><br></div><div><div>public class JTypeHelper {</div><div><br></d=
iv><div>=A0=A0 =A0public static final Generic INTEGER =3D Generic.get(Integ=
er.class);</div>
<div>=A0=A0 =A0public static final Generic LONG =3D Generic.get(Long.class)=
;</div><div>=A0=A0 =A0public static final Generic FLOAT =3D Generic.get(Flo=
at.class);</div><div>=A0=A0 =A0public static final Generic DOUBLE =3D Gener=
ic.get(Double.class);</div>
<div>=A0=A0 =A0public static final Generic BOOLEAN =3D Generic.get(Boolean.=
class);</div><div>=A0=A0 =A0public static final Generic CHARACTER =3D Gener=
ic.get(Character.class);</div><div>=A0=A0 =A0public static final Generic SH=
ORT =3D Generic.get(Short.class);</div>
<div>=A0=A0 =A0public static final Generic BYTE =3D Generic.get(Byte.class)=
;</div><div>=A0=A0 =A0public static final Generic VOID =3D Generic.get(Void=
.TYPE);</div><div><br></div><div>=A0=A0 =A0public static boolean isAssignab=
leFrom(Generic&lt;?&gt; generic, Class&lt;?&gt; aClass) {</div>
<div>=A0=A0 =A0 =A0 =A0if (generic.getType() instanceof Class) {</div><div>=
=A0=A0 =A0 =A0 =A0 =A0 =A0return ((Class) generic.getType()).isAssignableFr=
om(aClass);</div><div>=A0=A0 =A0 =A0 =A0}</div><div>=A0=A0 =A0 =A0 =A0retur=
n false;</div><div>=A0=A0 =A0}</div><div><br></div>
<div>=A0=A0 =A0public static boolean isAssignableTo(Generic&lt;?&gt; generi=
c, Class aClass) {</div><div>=A0=A0 =A0 =A0 =A0if (generic.getType() instan=
ceof Class) {</div><div>=A0=A0 =A0 =A0 =A0 =A0 =A0return aClass.isAssignabl=
eFrom((Class&lt;?&gt;) generic.getType());</div>
<div>=A0=A0 =A0 =A0 =A0}</div><div>=A0=A0 =A0 =A0 =A0return false;</div><di=
v>=A0=A0 =A0}</div><div><br></div><div>=A0=A0 =A0public static boolean isPr=
imitive(Generic&lt;?&gt; generic) {</div><div>=A0=A0 =A0 =A0 =A0return gene=
ric.getType() instanceof Class &amp;&amp; ((Class) generic.getType()).isPri=
mitive();</div>
<div>=A0=A0 =A0}</div><div><br></div><div>}</div></div>

--00c09f923134f891e8048ce9b210--