samedi 9 mai 2015

Issue while returning to the caller from a recursive function

i am working on an rcp app involving folder/directory tree, my code snippet is as follows

List<FolderContainer> setFolderConfigurationDetails(List<FolderContainer> hF, List<Folder> tF) {

    List<FolderContainer> tHF = new ArrayList<FolderContainer>();
    for (int i = 0; i < hF.size(); i++) {

        FolderContiner fw = new FolderContainer();
        fw.setFolder(tF.get(i));
        fw.setParentFolderContainer(null);
        FolderContainer hfw = (hF.get(i));
        setChildFolderNumber(hfw, fw);
        tHF.add(hfw);

    }

    return tHF;
}

private void setChildFolderNumber(FolderContainer parentFolderContainer, FolderContainer fw2) {

    List<Folder> childFolders = parentFolderConatainer.getFolder().getFolders();

    for (int i = 0; i < childFolders.size(); i++) {
        Folder f = childFolders.get(i);
        FolderContainer fw = new FolderConatiner();
        fw.setFolder(f);
        fw.setParentFolderWrapper(parentFolderWrapper);
        Long s = getFolderNumber(fw, fw2);
        fw.getFolder().setFolderNumber(s);
        if (f.getFolders().size() > 0) {
            setChildFolderNumber(fw, fw2);
        }
    }

}

Here the above method setFolderConfigurationDetails calls setChildFolderNumber recursive method which determines the folder number in the hierarchy of folder structure . Method setChildFolderNumber correctly determines the folder sequence number , however when it returns back to setFolderConfigurationDetails , all the folder sequnce number are set to 0 and dont have the number assigned to the folders in the setChildFolderNumber method .

Could anyone tell me what could be the issue ?

Aucun commentaire:

Enregistrer un commentaire