All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nl.praegus.fitnesse.responders.symbolicLink.ProjectSymbolicLinkInfo Maven / Gradle / Ivy

There is a newer version: 2.0.24
Show newest version
package nl.praegus.fitnesse.responders.symbolicLink;

import fitnesse.wiki.PageData;
import fitnesse.wiki.SymbolicPage;
import fitnesse.wiki.WikiPage;
import fitnesse.wiki.WikiPageProperty;
import org.json.JSONArray;
import org.json.JSONObject;

import java.util.*;

public class ProjectSymbolicLinkInfo {
    private List symbolicLinkInfos = new ArrayList<>();

    public ProjectSymbolicLinkInfo(WikiPage wikiPage){
        symbolicLinkInfos.addAll(getSymlinksHelper(wikiPage, new ArrayList<>()));
    }

    public List getSymbolicLinkInfos() {
        return symbolicLinkInfos;
    }

    public JSONArray getSymbolicLinkInfosJsonArray(){
        JSONArray symlinksJsonArray = new JSONArray();

        for (SymbolicLinkInfo symlink : symbolicLinkInfos) {
            JSONObject symlinkJsonObject = new JSONObject();
            symlinkJsonObject.put("pagePath", symlink.getPagePath());
            symlinkJsonObject.put("linkName", symlink.getLinkName());
            symlinkJsonObject.put("linkPath", symlink.getLinkPath());
            symlinkJsonObject.put("backUpLinkPath", symlink.getBackupLinkPath());

            symlinksJsonArray.put(symlinkJsonObject);
        }

        return symlinksJsonArray;
    }

    private List getSymlinksHelper(WikiPage wikiPage, List symbolicLinkArray) {
        PageData pageData = wikiPage.getData();
        // Get Symlinks of the wiki page
        WikiPageProperty symLinksProperty = pageData.getProperties().getProperty(SymbolicPage.PROPERTY_NAME);

        // Loop through the names
        if (symLinksProperty != null) {
            for (String name : symLinksProperty.keySet()) {
                symbolicLinkArray.add(new SymbolicLinkInfo(name, wikiPage, symLinksProperty));
            }
        }

        // Get Symlinks from the children
        if (wikiPage.getChildren() != null) {
            for (WikiPage page : wikiPage.getChildren()) {
                getSymlinksHelper(page, symbolicLinkArray);
            }
        }

        return symbolicLinkArray;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy