package fr.gael.dhus.server.http.webapp.stub.controller.stub_share; import java.util.ArrayList; import java.util.List; public class XMLNodeData { private static int displayIncrement = 10; private String name; private String path; private String request; private String value; private int childrenNumber; private List<XMLNodeData> displayedChildren; private List<XMLNodeAttribute> attributes; private int deep; private String loadMoreRequest; public XMLNodeData(String name, String value, String path, int childrenNumber) { this.name = name; this.value = value; this.childrenNumber = childrenNumber; displayedChildren = new ArrayList<XMLNodeData>(); setPath(path); } public String getValue () { return value; } public void setValue (String value) { this.value = value; } public String getName () { return name; } public void setName (String name) { this.name = name; } public String getPath () { return path; } public void setPath (String path) { this.path = path; // if request is only "/Nodes",it will request from root folder of DHuS, // so if empty path, request will be only "Nodes". this.request = path.isEmpty () ? "Nodes" : path+"/Nodes"; if (childrenNumber > displayIncrement) { this.request += "?$top="+displayIncrement; } } public String getRequest () { return request; } public boolean isLeaf () { return childrenNumber <= 0; } public int getChildrenNumber () { return childrenNumber; } public void setChildrenNumber (int childrenNumber) { this.childrenNumber = childrenNumber; } public int getDeep () { return deep; } public void setDeep (int deep) { this.deep = deep; } public List<XMLNodeData> getDisplayedChildren() { return displayedChildren; } public String getLoadMoreRequest () { return loadMoreRequest; } public void clearDisplayedChildren() { displayedChildren.clear(); loadMoreRequest = null; } public void addDisplayedChildren(List<XMLNodeData> children) { displayedChildren.addAll(children); if ((displayedChildren.size () < childrenNumber) && (childrenNumber > displayIncrement)) { int start = displayedChildren.size (); loadMoreRequest = path.isEmpty () ? "Nodes" : path+"/Nodes?$skip="+start+"&$top="+displayIncrement; } else { loadMoreRequest = null; } } public List<XMLNodeAttribute> getAttributes () { return attributes; } public void setAttributes (List<XMLNodeAttribute> attributes) { this.attributes = attributes; } @Override public String toString() { return this.getName(); } @Override public boolean equals (Object o) { return o instanceof XMLNodeData && ((XMLNodeData) o).path == this.path; } }