protected boolean removeObject(final Object editableObject) {
   // todo keep only removeModule() and removeFacet() here because other removeXXX() are empty here
   // and overridden in subclasses? Override removeObject() instead?
   if (editableObject instanceof Sdk) {
     removeJdk((Sdk) editableObject);
   } else if (editableObject instanceof Module) {
     if (!removeModule((Module) editableObject)) return false;
   } else if (editableObject instanceof Facet) {
     if (removeFacet((Facet) editableObject).isEmpty()) return false;
   } else if (editableObject instanceof Library) {
     if (!removeLibrary((Library) editableObject)) return false;
   } else if (editableObject instanceof Artifact) {
     removeArtifact((Artifact) editableObject);
   }
   return true;
 }