public static void resolveMPE( MindProject currentProject, EList<MindRootSrc> allsrc, MindPathEntry mpe) { MindObject resolvedBy = mpe.getResolvedBy(); if (resolvedBy == null) return; switch (mpe.getEntryKind()) { case APPLI: break; case IMPORT_PACKAGE: MindPackage mpackage = (MindPackage) resolvedBy; addSourceOrLibrary(allsrc, mpackage.getRootsrc()); break; case LIBRARY: MindRootSrc rs = (MindRootSrc) resolvedBy; addSourceOrLibrary(allsrc, rs); break; case PROJECT: MindProject mp = (MindProject) resolvedBy; if (mp != currentProject) allsrc.addAll(mp.getAllsrc()); break; case SOURCE: rs = (MindRootSrc) resolvedBy; addSourceOrLibrary(allsrc, rs); break; default: break; } }
@Override public EList<MindLibOrProject> getUses() { BasicEList<MindLibOrProject> ret = new BasicEList<MindLibOrProject>(); for (MindPathEntry mpe : mindpathentries) { MindObject resolvedObject = mpe.getResolvedBy(); if (resolvedObject == null) continue; MindLibOrProject mp = null; if (resolvedObject instanceof MindRootSrc) { MindRootSrc s = (MindRootSrc) resolvedObject; mp = s.getProject(); } else if (resolvedObject instanceof MindPackage) { MindPackage mdPacakage = (MindPackage) resolvedObject; MindRootSrc s = mdPacakage.getRootsrc(); if (s == null) continue; mp = s.getProject(); } else if (resolvedObject instanceof MindProject) { mp = (MindProject) resolvedObject; } if (mp == null || ret.contains(mp)) continue; ret.add(mp); } return ret; }