X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.jcr%2Fsrc%2Forg%2Fargeo%2Fjcr%2FJcr.java;h=493e4afe27da3e327e84df69210061c3277882e2;hb=6a44d45d5e60b6187ddca5fa280f468d5763c2ad;hp=263128448f3f5f133b194c91cf2f647013d5b5d2;hpb=3eedd4220bb9f9ac91be4f0d091312f5a2e1e325;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.jcr/src/org/argeo/jcr/Jcr.java b/org.argeo.jcr/src/org/argeo/jcr/Jcr.java index 263128448..493e4afe2 100644 --- a/org.argeo.jcr/src/org/argeo/jcr/Jcr.java +++ b/org.argeo.jcr/src/org/argeo/jcr/Jcr.java @@ -94,62 +94,62 @@ public class Jcr { /** * @see Node#isNodeType(String) - * @throws IllegalStateException caused by {@link RepositoryException} + * @throws JcrException caused by {@link RepositoryException} */ public static boolean isNodeType(Node node, String nodeTypeName) { try { return node.isNodeType(nodeTypeName); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get whether " + node + " is of type " + nodeTypeName, e); + throw new JcrException("Cannot get whether " + node + " is of type " + nodeTypeName, e); } } /** * @see Node#hasNodes() - * @throws IllegalStateException caused by {@link RepositoryException} + * @throws JcrException caused by {@link RepositoryException} */ public static boolean hasNodes(Node node) { try { return node.hasNodes(); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get whether " + node + " has children.", e); + throw new JcrException("Cannot get whether " + node + " has children.", e); } } /** * @see Node#getParent() - * @throws IllegalStateException caused by {@link RepositoryException} + * @throws JcrException caused by {@link RepositoryException} */ public static Node getParent(Node node) { try { return isRoot(node) ? null : node.getParent(); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get parent of " + node, e); + throw new JcrException("Cannot get parent of " + node, e); } } /** * Whether this node is the root node. * - * @throws IllegalStateException caused by {@link RepositoryException} + * @throws JcrException caused by {@link RepositoryException} */ public static boolean isRoot(Node node) { try { return node.getDepth() == 0; } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get depth of " + node, e); + throw new JcrException("Cannot get depth of " + node, e); } } /** * @see Node#getPath() - * @throws IllegalStateException caused by {@link RepositoryException} + * @throws JcrException caused by {@link RepositoryException} */ public static String getPath(Node node) { try { return node.getPath(); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get path of " + node, e); + throw new JcrException("Cannot get path of " + node, e); } } @@ -164,25 +164,25 @@ public class Jcr { /** * @see Node#getIdentifier() - * @throws IllegalStateException caused by {@link RepositoryException} + * @throws JcrException caused by {@link RepositoryException} */ public static String getIdentifier(Node node) { try { return node.getIdentifier(); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get identifier of " + node, e); + throw new JcrException("Cannot get identifier of " + node, e); } } /** * @see Node#getName() - * @throws IllegalStateException caused by {@link RepositoryException} + * @throws JcrException caused by {@link RepositoryException} */ public static String getName(Node node) { try { return node.getName(); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get name of " + node, e); + throw new JcrException("Cannot get name of " + node, e); } } @@ -212,20 +212,20 @@ public class Jcr { /** * @return the children as an {@link Iterable} for use in for-each llops. * @see Node#getNodes() - * @throws IllegalStateException caused by {@link RepositoryException} + * @throws JcrException caused by {@link RepositoryException} */ public static Iterable nodes(Node node) { try { return iterate(node.getNodes()); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get children of " + node, e); + throw new JcrException("Cannot get children of " + node, e); } } /** * @return the children as a (possibly empty) {@link List}. * @see Node#getNodes() - * @throws IllegalStateException caused by {@link RepositoryException} + * @throws JcrException caused by {@link RepositoryException} */ public static List getNodes(Node node) { List nodes = new ArrayList<>(); @@ -238,14 +238,14 @@ public class Jcr { } else return nodes; } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get children of " + node, e); + throw new JcrException("Cannot get children of " + node, e); } } /** * @return the child or null if not found * @see Node#getNode(String) - * @throws IllegalStateException caused by {@link RepositoryException} + * @throws JcrException caused by {@link RepositoryException} */ public static Node getNode(Node node, String child) { try { @@ -254,14 +254,14 @@ public class Jcr { else return null; } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get child of " + node, e); + throw new JcrException("Cannot get child of " + node, e); } } /** * @return the node at this path or null if not found * @see Session#getNode(String) - * @throws IllegalStateException caused by {@link RepositoryException} + * @throws JcrException caused by {@link RepositoryException} */ public static Node getNode(Session session, String path) { try { @@ -270,14 +270,14 @@ public class Jcr { else return null; } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get node " + path, e); + throw new JcrException("Cannot get node " + path, e); } } /** * @return the node with htis id or null if not found * @see Session#getNodeByIdentifier(String) - * @throws IllegalStateException caused by {@link RepositoryException} + * @throws JcrException caused by {@link RepositoryException} */ public static Node getNodeById(Session session, String id) { try { @@ -285,7 +285,7 @@ public class Jcr { } catch (ItemNotFoundException e) { return null; } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get node with id " + id, e); + throw new JcrException("Cannot get node with id " + id, e); } } @@ -293,7 +293,7 @@ public class Jcr { * Set a property to the given value, or remove it if the value is * null. * - * @throws IllegalStateException caused by {@link RepositoryException} + * @throws JcrException caused by {@link RepositoryException} */ public static void set(Node node, String property, Object value) { try { @@ -327,7 +327,7 @@ public class Jcr { } else // try with toString() prop.setValue(value.toString()); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot set property " + property + " of " + node + " to " + value, e); + throw new JcrException("Cannot set property " + property + " of " + node + " to " + value, e); } } @@ -337,7 +337,7 @@ public class Jcr { * @return the value of * {@link Node#getProperty(String)}.{@link Property#getString()} or * null if the property does not exist. - * @throws IllegalStateException caused by {@link RepositoryException} + * @throws JcrException caused by {@link RepositoryException} */ public static String get(Node node, String property) { return get(node, property, null); @@ -350,7 +350,7 @@ public class Jcr { * @return the value of * {@link Node#getProperty(String)}.{@link Property#getString()} or * defaultValue if the property does not exist. - * @throws IllegalStateException caused by {@link RepositoryException} + * @throws JcrException caused by {@link RepositoryException} */ public static String get(Node node, String property, String defaultValue) { try { @@ -368,7 +368,7 @@ public class Jcr { } else return defaultValue; } catch (RepositoryException e) { - throw new IllegalStateException("Cannot retrieve property " + property + " from " + node); + throw new JcrException("Cannot retrieve property " + property + " from " + node, e); } } @@ -377,7 +377,7 @@ public class Jcr { * * @return {@link Node#getProperty(String)} or null if the property * does not exist. - * @throws IllegalStateException caused by {@link RepositoryException} + * @throws JcrException caused by {@link RepositoryException} */ public static Value getValue(Node node, String property) { try { @@ -386,7 +386,7 @@ public class Jcr { else return null; } catch (RepositoryException e) { - throw new IllegalStateException("Cannot retrieve property " + property + " from " + node); + throw new JcrException("Cannot retrieve property " + property + " from " + node, e); } } @@ -396,7 +396,7 @@ public class Jcr { * @return the value of {@link Node#getProperty(String)} or * defaultValue if the property does not exist. * @throws IllegalArgumentException if the value could not be cast - * @throws IllegalStateException in case of unexpected + * @throws JcrException in case of unexpected * {@link RepositoryException} */ @SuppressWarnings("unchecked") @@ -428,7 +428,7 @@ public class Jcr { return defaultValue; } } catch (RepositoryException e) { - throw new IllegalStateException("Cannot retrieve property " + property + " from " + node); + throw new JcrException("Cannot retrieve property " + property + " from " + node, e); } } @@ -447,7 +447,7 @@ public class Jcr { try { return node.getSession(); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot retrieve session related to " + node, e); + throw new JcrException("Cannot retrieve session related to " + node, e); } } @@ -456,7 +456,16 @@ public class Jcr { try { return session.getRootNode(); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get root node for " + session, e); + throw new JcrException("Cannot get root node for " + session, e); + } + } + + /** Whether this item exists. */ + public static boolean itemExists(Session session, String path) { + try { + return session.itemExists(path); + } catch (RepositoryException e) { + throw new JcrException("Cannot check whether " + path + " exists", e); } } @@ -474,7 +483,7 @@ public class Jcr { if (session.hasPendingChanges()) session.save(); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot save session related to " + node + " in workspace " + throw new JcrException("Cannot save session related to " + node + " in workspace " + session(node).getWorkspace().getName(), e); } } @@ -517,7 +526,7 @@ public class Jcr { Session session = node.getSession(); JcrUtils.addPrivilege(session, node.getPath(), principal, privilege); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot add privilege " + privilege + " to " + node, e); + throw new JcrException("Cannot add privilege " + privilege + " to " + node, e); } } @@ -529,7 +538,7 @@ public class Jcr { try { return node.isCheckedOut(); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot retrieve checked out status of " + node, e); + throw new JcrException("Cannot retrieve checked out status of " + node, e); } } @@ -538,7 +547,7 @@ public class Jcr { try { versionManager(node).checkpoint(node.getPath()); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot check in " + node, e); + throw new JcrException("Cannot check in " + node, e); } } @@ -547,7 +556,7 @@ public class Jcr { try { versionManager(node).checkin(node.getPath()); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot check in " + node, e); + throw new JcrException("Cannot check in " + node, e); } } @@ -556,7 +565,7 @@ public class Jcr { try { versionManager(node).checkout(node.getPath()); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot check out " + node, e); + throw new JcrException("Cannot check out " + node, e); } } @@ -565,7 +574,7 @@ public class Jcr { try { return node.getSession().getWorkspace().getVersionManager(); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get version manager from " + node, e); + throw new JcrException("Cannot get version manager from " + node, e); } } @@ -574,7 +583,7 @@ public class Jcr { try { return versionManager(node).getVersionHistory(node.getPath()); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get version history from " + node, e); + throw new JcrException("Cannot get version history from " + node, e); } } @@ -592,7 +601,7 @@ public class Jcr { Collections.reverse(lst); return lst; } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get linear versions from " + versionHistory, e); + throw new JcrException("Cannot get linear versions from " + versionHistory, e); } } @@ -601,7 +610,7 @@ public class Jcr { try { return version.getFrozenNode(); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get frozen node from " + version, e); + throw new JcrException("Cannot get frozen node from " + version, e); } } @@ -610,7 +619,7 @@ public class Jcr { try { return versionManager(node).getBaseVersion(node.getPath()); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get base version from " + node, e); + throw new JcrException("Cannot get base version from " + node, e); } } @@ -628,7 +637,7 @@ public class Jcr { throw new IllegalArgumentException(fileNode + " must be a file."); return getBinarySize(fileNode.getNode(Node.JCR_CONTENT).getProperty(Property.JCR_DATA).getBinary()); } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get file size of " + fileNode, e); + throw new JcrException("Cannot get file size of " + fileNode, e); } } @@ -639,7 +648,7 @@ public class Jcr { return binary.getSize(); } } catch (RepositoryException e) { - throw new IllegalStateException("Cannot get file size of binary " + binaryArg, e); + throw new JcrException("Cannot get file size of binary " + binaryArg, e); } }