public Object getHierarchicalPackageParent(final IScriptFolder child) { String name = child.getElementName(); IProjectFragment parent = (IProjectFragment) child.getParent(); int index = name.lastIndexOf(IScriptFolder.PACKAGE_DELIMITER); if (index != -1) { String realParentName = name.substring(0, index); IScriptFolder element = parent.getScriptFolder(realParentName); if (element != null && element.exists()) { try { if (fFoldPackages && ScriptExplorerContentProvider.isEmpty(element) && ScriptExplorerContentProvider.findSinglePackageChild(element, parent.getChildren()) != null) { return getHierarchicalPackageParent(element); } } catch (ModelException e) { // ignore } return element; } else if (element != null) { // bug 65240 IResource resource = element.getResource(); if (resource != null) { return resource; } } } if (parent.getResource() instanceof IProject) { return parent.getScriptProject(); } return parent; }
@Override public String resolve(IScriptFolder container) { if (container == null) { Logger.log(Logger.WARNING, "Unable to resolve namespace, no container available"); return null; } // Try composer first - Symfony 2.1 try { IPath path = ModelAccess.getInstance().resolve(container.getResource()); if (path != null) { return path.toString().replace("/", "\\"); } } catch (Exception e) { Logger.logException(e); } // fallback to Symfony 2.0 return SymfonyModelAccess.getDefault() .findNameSpace(container.getScriptProject(), container.getPath()); }