Set<RefPackage> ( RefPackage refPackage) { final Set<RefPackage> dependencies = refPackage.getUserData(DEPENDENCY_PACKAGES_KEY); if (dependencies != null) { return dependencies; } final Set<RefPackage> newDependencies = new HashSet<>(); tabulateDependencyPackages(refPackage, newDependencies); newDependencies.remove(refPackage); refPackage.putUserData(DEPENDENCY_PACKAGES_KEY, newDependencies); return newDependencies; }