Bug 270989 Context refactoring
Based on discussions over the past weeks, I'm doing a refactoring of the context API. Major changes: - Renamed IComputedValue to IContextFunction - Renamed *Value to *Function - Renamed UIContextScheduler to UISchedulerStrategy - Added concept of ILookupStrategy to delegate lookup of keys that are not yet defined in a given context - Re-implemented OSGi service support using lookup strategy I also fixed a couple of NPE's I found while testing with the e4 photo demo (null realms, etc)
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/internal/ActiveChildOutputValue.java
private final String attr;
	public ActiveChildOutputValue(String attr) {
		this.attr = attr;
	}
	public Object compute(IEclipseContext context, Object[] arguments) {
		IEclipseContext childContext = (IEclipseContext) context
				.getLocal(IServiceConstants.ACTIVE_CHILD);
		if (childContext != null) {
			return childContext.get(attr);
		} else if (context.containsKey(IServiceConstants.OUTPUTS)) {
			IEclipseContext outputs = (IEclipseContext) context
					.get(IServiceConstants.OUTPUTS);
			return outputs.get(attr);
		}
		return null;
	}
}