package de.ovgu.cide.features; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; public class FeatureModelProviderProxy implements IFeatureModelProvider { private final IConfigurationElement configElement; public FeatureModelProviderProxy(IConfigurationElement configurationElement) { this.configElement = configurationElement; name = configElement.getAttribute("name"); id = configElement.getAttribute("id"); } private final String name; private final String id; private IFeatureModelProvider target = null; private void loadTarget() { try { target = (IFeatureModelProvider) configElement .createExecutableExtension("provider"); } catch (CoreException e) { e.printStackTrace(); } } @Override public String toString() { return "Feature Model Provider: " + name + " (" + id + ")"; } public String getName() { return name; } public String getId() { return id; } public IFeatureModel getFeatureModel(IProject project) throws FeatureModelNotFoundException { if (target == null) loadTarget(); return target.getFeatureModel(project); } }