/** @since 2.8 */
 protected boolean isDerived(String typeName, IJavaProject project) {
   QualifiedName qualifiedName = nameConverter.toQualifiedName(typeName);
   Iterable<IEObjectDescription> iterable =
       resourceDescriptions.getExportedObjects(
           TypesPackage.Literals.JVM_TYPE, qualifiedName, false);
   Iterator<IEObjectDescription> iterator = iterable.iterator();
   if (iterator.hasNext()) {
     if (project != null) {
       JavaProjectsState javaProjectsState = getJavaProjectsState();
       List<String> visibleContainers =
           javaProjectsState.getVisibleContainerHandles(project.getHandleIdentifier());
       while (iterator.hasNext()) {
         IEObjectDescription description = iterator.next();
         URI resourceURI = description.getEObjectURI().trimFragment();
         String handle = javaProjectsState.getContainerHandle(resourceURI);
         if (visibleContainers.contains(handle)) {
           return true;
         }
       }
       return false;
     }
     return true;
   }
   return false;
 }