Skip to content

Instantly share code, notes, and snippets.

@phoolhbti
Last active March 14, 2018 07:33
Show Gist options
  • Select an option

  • Save phoolhbti/3c497693ca95feb093f7 to your computer and use it in GitHub Desktop.

Select an option

Save phoolhbti/3c497693ca95feb093f7 to your computer and use it in GitHub Desktop.
Reorder Sort jcr node by property
private Node orderByProperty(Node sourceNode,String prop)throws RepositoryException {
NodeIterator sortOrder=sourceNode.getNodes();
sortOrder=sortByProperty(sortOrder,prop);
Node tempNode=null;
while(sortOrder.hasNext()){
Node firstNode=sortOrder.nextNode();
sourceNode.orderBefore(getRelPath(firstNode), null);
}
return sourceNode;
}
private NodeIterator sortByProperty(NodeIterator input,final String propName) throws RepositoryException {
ArrayList<Node> results = new ArrayList<Node>();
while (input.hasNext()) {
results.add(input.nextNode());
}
Collections.sort(results, new Comparator<Node>(){
public int compare(Node node1, Node node2) {
try{
Integer nickName1 = (node1.hasProperty(propName) ? Integer.valueOf(node1.getProperty(propName).getString()) : 0);
Integer nickName2 = (node2.hasProperty(propName) ? Integer.valueOf(node2.getProperty(propName).getString()) : 0);
return nickName1.compareTo(nickName2);
}catch(RepositoryException e){
return 0;
}
}
});
return new NodeIteratorAdapter(results);
}
// n.setProperty("textshadowcolor","None");
//Rename a node
node.getSession().move(n.getPath(), n.getParent().getPath() + "/" + newName);
// check a jcr property
nodeName.hasProperty("color")
// remove a jcr node
nodeName.getNode("propertyName").remove();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment