Bug 280076 Make model loading plugable
Today our EMF usage is structured in a way that we can only load a model from XMI and inherit from EObjectImpl. This makes it impossible to leverage other EMF-Technologies (e.g. CDO). We should think about how we can restructure our code base to have possibility to support different model-storage technologies and different EObject-Implementations.
bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/workbench/swt/internal/E4Application.java
if (perceivedRoot == null) {
						return null;
					}
				}
				IEclipseContext current = perceivedRoot.getContext();
				if (current == null) {
					return null;
				}
				IEclipseContext next = (IEclipseContext) current
						.getLocal(IContextConstants.ACTIVE_CHILD);
				while (next != null) {
					current = next;
					next = (IEclipseContext) current
							.getLocal(IContextConstants.ACTIVE_CHILD);
				}
				Object object = current.get(MPerspective.class.getName());
				if (object == null) {
					
					MUIElement window = (MUIElement) current.get(MWindow.class
							.getName());
					if (window == null)
						return null;
					MElementContainer<?> parent = window.getParent();
					while (parent != null && !(parent instanceof MApplication)) {
						window = parent;
						parent = parent.getParent();
					}
					return window;
				}
				return object;