
nl.praegus.fitnesse.responders.symbolicLink.ProjectSymbolicLinkInfo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of toolchain-fitnesse-plugin Show documentation
Show all versions of toolchain-fitnesse-plugin Show documentation
Auto-register autocomplete responder and add debug script table
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