March 21, 2020
Estimated Post Reading Time ~

Adobe CQ5/AEM node operations- add, delete, Recursively fetching the nodes

Delete a node:
//Below code delete 'textRenderer' node if present under /content/projectname

private static final String TEXT_RENDERER_NODE_URL = "/content/projectname";
rendererNode = currentSession.getNode(TEXT_RENDERER_NODE_URL);
if (rendererNode.hasNode("textRenderer")) {
Node delNode = currentSession.getNode(TEXT_RENDERER_NODE_URL + "/textRenderer");
delNode.remove();
currentSession.save();

Ensure to save the session after any node modification.

Add a node
//Below code adds 'textRenderer' node of type 'cq:Page' under /content/projectname

private static final String TEXT_RENDERER_NODE_URL = "/content/projectname";

Node fileNode = rendererNode.addNode("textRenderer", "cq:Page");
fileNode.addMixin("rep:AccessControllable");
currentSession.save();

Recursively fetching the nodes under the CQ node
The below code recursively iterates over a root node and populate the node attributes.

// Node- the root node to be iterated
// Session - current session

public static void visitRecursively(Node node, Session currentSession) {
try {
// get all child nodes
NodeIterator list = node.getNodes();

while (list.hasNext()) {

// get child node

Node childNode = list.nextNode();
// Verify child node for cqPage type
if ((childNode.hasProperty("jcr:primaryType")) && (childNode.getProperty("jcr:primaryType").getValue().getString()).equals("cq:Page")) {

Node jcrNode = childNode.getNode("jcr:content");

// Iterate some of the page properties
String articleTitle = "";
String jcrDesc = "";
String jcrTitle = "";
String keywords = "";
if (jcrNode.hasProperty("articleTitle")) {

articleTitle = jcrNode.getProperty("articleTitle").getString();
log.info("articleTitle--->" + articleTitle);
}
if (jcrNode.hasProperty("jcr:description")) {

jcrDesc = jcrNode.getProperty("jcr:description").getString();
log.info("jcr:description--->" + jcrDesc);
}
if (jcrNode.hasProperty("jcr:title")) {

jcrTitle = jcrNode.getProperty("jcr:title").getString();
log.info("jcr:title--->" + jcrTitle);
}
if (jcrNode.hasProperty("keywords")) {

keywords = jcrNode.getProperty("keywords").getString();
log.info("keywords--->" + keywords);
}

String pagePropertiesString = "articleTitle--->" + articleTitle + "jcr:description--->" + jcrDesc + "jcr:title--->" + jcrTitle + "keywords--->" + keywords;

log.info("Page Properties :---> Node " + childNode.getName() + "Properties : " + pagePropertiesString);

}
visitRecursively(childNode, currentSession);
}
} catch (RepositoryException rpe) {
log.info("Exception in recursive listing:");
}
}



By aem4beginner

No comments:

Post a Comment

If you have any doubts or questions, please let us know.