You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by sebb <se...@gmail.com> on 2008/05/08 17:26:55 UTC

[JEXL] Access to static methods?

JEXL can access instance methods via the objects that are passed to
the interpreter.

Is it possible to access static methods in Jexl?

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Re: [JEXL] Access to static methods?

Posted by sebb <se...@gmail.com>.
On 12/05/2008, Trevor Harrison <tr...@gmail.com> wrote:
> On Mon, May 12, 2008 at 7:35 AM, sebb <se...@gmail.com> wrote:
>  > I see, thanks, very useful.
>  >
>  >  Presumably Jexl has to be given class objects for any static methods
>  >  it needs to call?
>  >  Or are there any objects which are built-in to Jexl?
>
>
> Doesn't matter, you can get access to any objects you need on the fly
>  with something like:
>
>  i = 0;
>  intClazz = i.class;
>  clazz = intClazz.forName("java.io.File");
>  m = clazz.getMethod("listRoots", null);
>  roots = m.invoke(null, null);
>  files = roots[0].listFiles();
>  foreach( file in files )
>  {
>   // do something with the file
>  }
>
>  Just replace the java.io.File string with the class you are interested
>  in, and use the reflection api.
>

Thanks, that's clever ...

>
>  -Trevor
>

;-)

>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>  For additional commands, e-mail: user-help@commons.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Re: [JEXL] Access to static methods?

Posted by Trevor Harrison <tr...@gmail.com>.
On Mon, May 12, 2008 at 7:35 AM, sebb <se...@gmail.com> wrote:
> I see, thanks, very useful.
>
>  Presumably Jexl has to be given class objects for any static methods
>  it needs to call?
>  Or are there any objects which are built-in to Jexl?

Doesn't matter, you can get access to any objects you need on the fly
with something like:

i = 0;
intClazz = i.class;
clazz = intClazz.forName("java.io.File");
m = clazz.getMethod("listRoots", null);
roots = m.invoke(null, null);
files = roots[0].listFiles();
foreach( file in files )
{
  // do something with the file
}

Just replace the java.io.File string with the class you are interested
in, and use the reflection api.

-Trevor

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Re: [JEXL] Access to static methods?

Posted by sebb <se...@gmail.com>.
I see, thanks, very useful.

Presumably Jexl has to be given class objects for any static methods
it needs to call?
Or are there any objects which are built-in to Jexl?

If not, it looks like one could perhaps extend FlatResolver to handle
something like:

systemClass=java.lang.System.class;

and then use it as follows:

systemClass.currentTimeMillis();

Or is this destined to fail?


Or am I way off
On 12/05/2008, Dion Gillard <di...@trongus.com> wrote:
> Yes.
>
>  See
>  http://svn.apache.org/repos/asf/commons/proper/jexl/trunk/src/test/org/apache/commons/jexl/JexlTest.java
>  Look for
>
>  testStaticMethodInvocation and testStaticMethodInvocationOnClasses
>
>
>
>  On Fri, May 9, 2008 at 1:26 AM, sebb <se...@gmail.com> wrote:
>
>  > JEXL can access instance methods via the objects that are passed to
>  > the interpreter.
>  >
>  > Is it possible to access static methods in Jexl?
>  >
>
> > ---------------------------------------------------------------------
>  > To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>  > For additional commands, e-mail: user-help@commons.apache.org
>  >
>  >
>
>
>
>  --
>  dIon Gillard
>  "Any sufficiently advanced technology is indistinguishable from magic" -
>  Arthur C. Clarke 1917 - 2008
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Re: [JEXL] Access to static methods?

Posted by Dion Gillard <di...@trongus.com>.
Yes.

See
http://svn.apache.org/repos/asf/commons/proper/jexl/trunk/src/test/org/apache/commons/jexl/JexlTest.java
Look for

testStaticMethodInvocation and testStaticMethodInvocationOnClasses


On Fri, May 9, 2008 at 1:26 AM, sebb <se...@gmail.com> wrote:

> JEXL can access instance methods via the objects that are passed to
> the interpreter.
>
> Is it possible to access static methods in Jexl?
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>
>


-- 
dIon Gillard
"Any sufficiently advanced technology is indistinguishable from magic" -
Arthur C. Clarke 1917 - 2008