X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-suite.git;a=blobdiff_plain;f=publishing%2Forg.argeo.publishing.ui%2Fsrc%2Forg%2Fargeo%2Fdocbook%2Fui%2FDbkUtils.java;h=35a7132f78fd87a62f4f711d5ae0941dd0fd2b22;hp=ee675d26e5aa77428f63ee774aafca7bab3d0530;hb=12715aaf68a7dcaf97efe3895f41f0c7a9440dd2;hpb=682b5baf9a60b9772c1e13ba76dc0744be077b13 diff --git a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkUtils.java b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkUtils.java index ee675d2..35a7132 100644 --- a/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkUtils.java +++ b/publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/DbkUtils.java @@ -1,8 +1,11 @@ package org.argeo.docbook.ui; import javax.jcr.Node; +import javax.jcr.NodeIterator; import javax.jcr.RepositoryException; +import org.argeo.entity.EntityType; +import org.argeo.jcr.Jcr; import org.argeo.jcr.JcrException; import org.argeo.jcr.JcrUtils; import org.argeo.jcr.JcrxApi; @@ -22,6 +25,34 @@ public class DbkUtils { } } + public static Node getMetadata(Node infoContainer) { + try { + if (!infoContainer.hasNode(DocBookTypes.INFO)) + return null; + Node info = infoContainer.getNode(DocBookTypes.INFO); + if (!info.hasNode(EntityType.local.get())) + return null; + return info.getNode(EntityType.local.get()); + } catch (RepositoryException e) { + throw new JcrException("Cannot retrieve metadata from " + infoContainer, e); + } + } + + public static Node getChildByRole(Node parent, String role) { + try { + NodeIterator baseSections = parent.getNodes(); + while (baseSections.hasNext()) { + Node n = baseSections.nextNode(); + String r = Jcr.get(n, DocBookNames.DBK_ROLE); + if (r != null && r.equals(role)) + return n; + } + return null; + } catch (RepositoryException e) { + throw new JcrException("Cannot get child from " + parent + " with role " + role, e); + } + } + public static Node addParagraph(Node node, String txt) { try { Node para = node.addNode(DocBookTypes.PARA, DocBookTypes.PARA);