Ken,

On Fri, Aug 19, 2011 at 2:56 PM,  <ken.willi...@thomsonreuters.com> wrote:
> Hi Patrick,
>
> Well, Enums have only existed for about 3 or 4 years, so 60-70% of that
> silence is understandable. =)

One neat thing about Java is that the reflection stuff is very
consistent. Even "newer" stuff like Enum that  didn't exist when I
first wrote Inline::Java can automagically work using the existing
framework. In this case they are implemented using an inner class.

> I want to get my hands on a specific Enum value.  valueOf() is just a way
> to look up an Enum by its string name, I was hoping that might already be
> exposed in the API by existing methods.
>
> Experimenting again, it looks like the following actually works:
>
> ------------------------
> use Inline (Java => "STUDY",
>            CLASSPATH => "foo.jar",
>            AUTOSTUDY => 1,
>            STUDY=> ["com.my.company.TokenFSM\$TokenType"],
>            JNI=>1);
> print com::my::company::TokenFSM::TokenType->valueOf("APOS");
> ------------------------
>
>
> That prints:
>
>  main::com::my::company::TokenFSM::TokenType=HASH(0x1030567c0)
>
> And I can call methods of that object (like ordinal(), name(), etc.), so
> I'm happy. =)

You can also reference them directly like this:

print $com::my::company::TokenFSM::TokenType::ALPHAID->ordinal(), "\n" ;
print $com::my::company::TokenFSM::TokenType::APOS->ordinal(), "\n" ;

Patrick

-- 
=====================
Patrick LeBoutillier
Rosemère, Québec, Canada

Reply via email to