protected boolean computeChildren(OpenableElementInfo info,File underlyingResource) throws JavaModelException {
  HashtableOfArrayToObject rawPackageInfo=new HashtableOfArrayToObject();
  IJavaElement[] children;
  ZipFile jar=null;
  try {
    String compliance=CompilerOptions.VERSION_1_8;
    jar=getJar();
    rawPackageInfo.put(CharOperation.NO_STRINGS,new ArrayList[]{EMPTY_LIST,EMPTY_LIST});
    for (Enumeration e=jar.entries(); e.hasMoreElements(); ) {
      ZipEntry member=(ZipEntry)e.nextElement();
      initRawPackageInfo(rawPackageInfo,member.getName(),member.isDirectory(),compliance);
    }
    children=new IJavaElement[rawPackageInfo.size()];
    int index=0;
    for (int i=0, length=rawPackageInfo.keyTable.length; i < length; i++) {
      String[] pkgName=(String[])rawPackageInfo.keyTable[i];
      if (pkgName == null)       continue;
      children[index++]=getPackageFragment(pkgName);
    }
  }
 catch (  CoreException e) {
    if (e.getCause() instanceof ZipException) {
      Util.log(IStatus.ERROR,"Invalid ZIP archive: " + toStringWithAncestors());
      children=NO_ELEMENTS;
    }
 else     if (e instanceof JavaModelException) {
      throw (JavaModelException)e;
    }
 else {
      throw new JavaModelException(e);
    }
  }
 finally {
    manager.closeZipFile(jar);
  }
  info.setChildren(children);
  ((JarPackageFragmentRootInfo)info).rawPackageInfo=rawPackageInfo;
  return true;
}

protected boolean computeChildren ( OpenableElementInfo info , File underlyingResource ) throws JavaModelException { HashtableOfArrayToObject rawPackageInfo = new HashtableOfArrayToObject ( ) ; IJavaElement [ ] children ; ZipFile jar = null ; try { String compliance = CompilerOptions . VERSION_1_8 ; jar = getJar ( ) ; rawPackageInfo . put ( CharOperation . NO_STRINGS , new ArrayList [ ] { EMPTY_LIST , EMPTY_LIST } ) ; for ( Enumeration e = jar . entries ( ) ; e . hasMoreElements ( ) ; ) { ZipEntry member = ( ZipEntry ) e . nextElement ( ) ; initRawPackageInfo ( rawPackageInfo , member . getName ( ) , member . isDirectory ( ) , compliance ) ; } children = new IJavaElement [ rawPackageInfo . size ( ) ] ; int index = 0 ; for ( int i = 0 , length = rawPackageInfo . keyTable . length ; i < length ; i ++ ) { String [ ] pkgName = ( String [ ] ) rawPackageInfo . keyTable [ i ] ; if ( pkgName == null ) continue ; children [ index ++ ] = getPackageFragment ( pkgName ) ; } } catch ( CoreException e ) { if ( e . getCause ( ) instanceof ZipException ) { Util . log ( IStatus . ERROR , "Invalid ZIP archive: " + toStringWithAncestors ( ) ) ; children = NO_ELEMENTS ; } else if ( e instanceof JavaModelException ) { throw ( JavaModelException ) e ; } else { throw new JavaModelException ( e ) ; } } finally { manager . closeZipFile ( jar ) ; } info . setChildren ( children ) ; ( ( JarPackageFragmentRootInfo ) info ) . rawPackageInfo = rawPackageInfo ; return true ; }
compute the package fragment children of this package fragment root . these are all of the directory zip entries , and any directories implied by the path of class files contained in the jar of this package fragment root .
