/** * Update the list of children to include the ICPEType contains the giveb IClasspathEntry * * @param child the child * @param project the project * @return the iCPE type */ public synchronized ICPEType updateChild(IClasspathEntry child, IProject project) { String stringPath = makeStringPath(child.getPath()); ICPEType icp = getChild(stringPath); if (icp == null) { switch (child.getEntryKind()) { case (IClasspathEntry.CPE_CONTAINER): icp = new CPEContainer(); break; case (IClasspathEntry.CPE_LIBRARY): icp = new CPELibrary(); break; case (IClasspathEntry.CPE_PROJECT): icp = new CPEProject(); break; case (IClasspathEntry.CPE_SOURCE): icp = new CPESource(); break; case (IClasspathEntry.CPE_VARIABLE): icp = new CPEVariable(); break; default: throw new UnsupportedOperationException( "Unsupported IClasspathEntry.getEntryKind() = '" + child.getEntryKind() + "' on " + child); } children.add(icp); icp.setPath(stringPath); icp.setParent(this.getPath()); } return icp; }
/** * Gets the child. * * @param path the path * @return the child */ public ICPEType getChild(String path) { for (ICPEType child : children) { if (child != null && child.getPath().equals(path)) { return child; } } return null; }
/* * (non-Javadoc) * * @see net.kbserve.pyjdt.properties.models.ICPEType#hasChild(java.lang.String) */ public boolean hasChild(String path) { for (ICPEType child : children) { if (child.getPath().equals(path)) { return true; } } return false; }
/* * (non-Javadoc) * * @see net.kbserve.pyjdt.properties.models.ICPEType#setAvailable(boolean) */ @Override public void setAvailable(boolean available) { this.available = available; if (!available) { for (ICPEType child : getChildren()) { child.setAvailable(available); } } }