// In a first loop on the packages list,
for(int i=0 ; i<packages.size() ; i++) {
//Each package retrieves its parent
p = packages.get(i);
if(p!=null) {
p.retrieveContainerFromHierarchy();
}
}
// Recursively each package retrieve its children
List<IPackageService> root = fetchSubPackagesFromHierarchy();
packages = root;