private void createPackageParents(File packageFile,File treeFile){
  if (null == packageFile) {
    return;
  }
  TreeClimber treePath=new TreeClimber(treeFile);
  GraphNode lookupNode=builder.newNode(packageNode);
  while (lookupNode == packageNode) {
    packageFile=packageFile.getParentFile();
    treePath.ascendTree();
    if (null == packageFile) {
      return;
    }
    PackageElement childNode=packageNode;
    DirectoryElement childDir=packageDir;
    createPackageDir(packageFile,treePath.getTreePath());
    builder.newDep(packageNode,childNode,JavaRelation.PACKAGE);
    builder.newDep(packageDir,childDir,FileSystemRelation.CONTAINS_DIR);
    lookupNode=builder.newNode(packageNode);
  }
}

private void createPackageParents ( File packageFile , File treeFile ) { if ( null == packageFile ) { return ; } TreeClimber treePath = new TreeClimber ( treeFile ) ; GraphNode lookupNode = builder . newNode ( packageNode ) ; while ( lookupNode == packageNode ) { packageFile = packageFile . getParentFile ( ) ; treePath . ascendTree ( ) ; if ( null == packageFile ) { return ; } PackageElement childNode = packageNode ; DirectoryElement childDir = packageDir ; createPackageDir ( packageFile , treePath . getTreePath ( ) ) ; builder . newDep ( packageNode , childNode , JavaRelation . PACKAGE ) ; builder . newDep ( packageDir , childDir , FileSystemRelation . CONTAINS_DIR ) ; lookupNode = builder . newNode ( packageNode ) ; } }
ascend both the package tree and directory tree , creating any dependencies that are required . if any package already exists , assume the rest of the tree is complete and stop .
