org.apache.curator.utils
Class EnsurePath

java.lang.Object
  extended by org.apache.curator.utils.EnsurePath

public class EnsurePath
extends Object

Utility to ensure that a particular path is created.

The first time it is used, a synchronized call to ZKPaths.mkdirs(ZooKeeper, String) is made to ensure that the entire path has been created (with an empty byte array if needed). Subsequent calls with the instance are un-synchronized NOPs.

Usage:

         EnsurePath       ensurePath = new EnsurePath(aFullPathToEnsure);
         ...
         String           nodePath = aFullPathToEnsure + "/foo";
         ensurePath.ensure(zk);   // first time syncs and creates if needed
         zk.create(nodePath, ...);
         ...
         ensurePath.ensure(zk);   // subsequent times are NOPs
         zk.create(nodePath, ...);
     


Constructor Summary
EnsurePath(String path)
           
 
Method Summary
 void ensure(CuratorZookeeperClient client)
          First time, synchronizes and makes sure all nodes in the path are created.
 EnsurePath excludingLast()
          Returns a view of this EnsurePath instance that does not make the last node.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EnsurePath

public EnsurePath(String path)
Parameters:
path - the full path to ensure
Method Detail

ensure

public void ensure(CuratorZookeeperClient client)
            throws Exception
First time, synchronizes and makes sure all nodes in the path are created. Subsequent calls with this instance are NOPs.

Parameters:
client - ZK client
Throws:
Exception - ZK errors

excludingLast

public EnsurePath excludingLast()
Returns a view of this EnsurePath instance that does not make the last node. i.e. if the path is "/a/b/c" only "/a/b" will be ensured

Returns:
view


Copyright © 2011-2013 The Apache Software Foundation. All Rights Reserved.