Skip to main content

Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Rich Client Platform (RCP) » createExecutableExtension with parameters
createExecutableExtension with parameters [message #452457] Thu, 06 July 2006 04:23 Go to next message
Eclipse UserFriend
Originally posted by:

According to the IConfigurationElement javadoc, it always use
0-parameter public constructor to instantiate the class specified in
Executable Extension .
But in my application ,the class need to be instantiated with two
parameters, So is it possible to create an Executable Extension with
parameters? How to deal the case that need to be instantiated with

Re: createExecutableExtension with parameters [message #716761 is a reply to message #452457] Thu, 18 August 2011 11:14 Go to previous messageGo to next message
Philipp M. Fischer is currently offline Philipp M. FischerFriend
Messages: 67
Registered: November 2010
Location: Germany
Hi there,

An old Question but still relevant. At least for me.

I am currently struggeling with the same issue. I solved it using reflection, which is not the most beatiful way, but it works for me at the moment.

IConfigurationElement[] configElements = Platform.getExtensionRegistry).getConfigurationElementsFor(EXTENSION_DETAIL_CONTRIBUTION); 
try {
   for (IConfigurationElement configElement : configElements) {
      String id = configElement.getAttribute(DETAIL_CONTRIBUTION_ID);
      String name = configElement.getAttribute(DETAIL_CONTRIBUTION_NAME);
      String clazz = configElement.getAttribute(DETAIL_CONTRIBUTION_CLASS);
      Class<DetailItem> detailItem= (Class<DetailItem>) Class.forName(clazz);
      Constructor constructor = detailItem.getConstructors()[0]; 	
      DetailItem detailItem = (DetailItem) constructor.newInstance(this, id, name);
} catch ...

So if anyone has a better idea, please let us know. I guess there is a better way for this kind of Problem.


Re: createExecutableExtension with parameters [message #1006574 is a reply to message #716761] Thu, 31 January 2013 20:32 Go to previous message
Brian Watt is currently offline Brian WattFriend
Messages: 20
Registered: February 2012
Junior Member
Originally posted by:

This is what do do when we want return the static singleton we know is
declared in the interface rather than invoke a constructor:

Class<?> javaClass =
Field field = javaClass.getField("eINSTANCE");
Object result = field.get(null);
return (EPackage)result;

So you can use this same approach to load the class and then use normal
Java reflection to invoke some other constructor.

Previous Topic:track changes made before activation of plugin
Next Topic:Get the Command id in a PropertyTester
Goto Forum:

Current Time: Wed Dec 08 13:54:57 GMT 2021

Powered by FUDForum. Page generated in 0.01460 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top