On 2014-05-07 18:51, amehat wrote:
Hello everyone,

I'm working on porting a java library in D, and I stuck on a class
because it works with the reflection.

 From what I've read on prowiki
(http://www.prowiki.org/wiki4d/wiki.cgi?LanguagesVersusD), D can not do
reflection, it is limited to the Run-Time Type Information (RTTI )
(http://dlang.org/traits.html).

Here is the piece of code that blocks me:

static {
         Class clazz = this.class;

         auto accessible2Args = new Callback(clazz, "accessibleProc", 2);
         auto proc2Args = accessible2Args.getAddress();
         if (proc2Args === 0) {
         (...)
     }
(...)
}

I am looking for a workaround that I have not found yet.
If someone an idea on the subject, I'm interested.

Thank you to you.

It depends on how the rest of the code looks like. If you're lucky you can just take the address of "accessibleProc". You need to either provide more code or you can have a look at DWT [1], which is port of the Java library SWT. It actually contains code exactly like that. Have a look at this Java file [2] and the translation do D [3]. I'm using a static method here, it's not certain the same will work for you.

[1] https://github.com/d-widget-toolkit/dwt-mac

[2] http://git.eclipse.org/c/platform/eclipse.platform.swt.git/tree/bundles/org.eclipse.swt/Eclipse%20SWT%20Accessibility/cocoa/org/eclipse/swt/accessibility/SWTAccessibleDelegate.java?id=v3550

[3] https://github.com/d-widget-toolkit/dwt-mac/blob/master/dwt/accessibility/SWTAccessibleDelegate.d

--
/Jacob Carlborg

Reply via email to