Bug 295880 [context] Context-to-Injector link streamlining
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/internal/ReflectionContributionFactory.java
* java.lang.String, java.lang.String, org.eclipse.e4.core.services.context.IEclipseContext,
	 * java.lang.Object)
	 */
	public Object call(Object object, String uriString, String methodName, IEclipseContext context,
			Object defaultValue) {
		if (uriString != null) {
			URI uri = URI.createURI(uriString);
			if (uri.segmentCount() > 3) {
				String prefix = uri.segment(2);
				IContributionFactorySpi factory = (IContributionFactorySpi) languages.get(prefix);
				return factory.call(object, methodName, context, defaultValue);
			}
		}
		Method targetMethod = null;
		Method[] methods = object.getClass().getMethods();
		
		if (methods.length == 1) {
			targetMethod = methods[0];
		} else {
			ArrayList<Method> toSort = new ArrayList<Method>();
			for (int i = 0; i < methods.length; i++) {
				Method method = methods[i];
				
				if ((method.getModifiers() & Modifier.PUBLIC) != 0
						&& method.getName().equals(methodName)) {
					toSort.add(method);
				}
			}