package org.ofbiz.plugin.model; import java.util.ArrayList; import java.util.List; import org.eclipse.core.resources.IFile; import org.eclipse.emf.common.util.TreeIterator; import org.eclipse.emf.ecore.EObject; import org.ofbiz.plugin.model.hyperlink.HyperlinkMarker; import org.ofbiz.plugin.ofbiz.Controller; import org.ofbiz.plugin.ofbiz.HasXmlDefinition; import org.ofbiz.plugin.ofbiz.Project; import org.ofbiz.plugin.ofbiz.util.OfbizSwitch; import org.ofbiz.plugin.parser.GoToFile; public class HasXmlHasXmlDefinitionHelper { public static Controller findControllerByFile(Project project, final IFile file) { TreeIterator<EObject> eAllContents = project.eAllContents(); while (eAllContents.hasNext()) { EObject eObject = eAllContents.next(); OfbizSwitch<Controller> ofbizSwitch = new OfbizSwitch<Controller>() { @Override public Controller caseController(Controller object) { if (object.getFile().equals(file)) { return object; } return null; } }; Controller doSwitch = ofbizSwitch.doSwitch(eObject); if (doSwitch != null) { return doSwitch; } } return null; } /* public static List<HyperlinkMarker> findHyperlinkMarkers(final String uri, String componentName) { List<HyperlinkMarker> retValue = new ArrayList<HyperlinkMarker>(); Project project = OfbizModelSingleton.get().findActiveEclipseProject(); TreeIterator<EObject> eAllContents = project.eAllContents(); while (eAllContents.hasNext()) { EObject eObject = eAllContents.next(); OfbizSwitch<HasXmlDefinition> ofbizSwitch = new OfbizSwitch<HasXmlDefinition>() { @Override public HasXmlDefinition caseHasXmlDefinition(HasXmlDefinition object) { String objectUrl = object.getHyperlinkKey(); if (uri.equals(objectUrl)) { return object; } return null; } }; final HasXmlDefinition doSwitch = ofbizSwitch.doSwitch(eObject); if (doSwitch != null) { retValue.add(new HyperlinkMarker(GoToFile.getMarker(doSwitch)) { @Override public String getTypeLabel() { return ""; } @Override public String getHyperlinkText() { return doSwitch.getHyperlinkText(); } }); } } return retValue; } public static List<HyperlinkMarker> findHyperlinkMarkers(final String uri) { return findHyperlinkMarkers(uri, null); } */ }