@Override
  public WatchableTask<ZKData> getData(String path) {
    return new WatchableTask<ZKData>("zkGetData: " + path) {
      @Override
      protected Promise<? extends ZKData> run(Context context)
          throws Throwable {
        SettablePromise<ZKData> promise = Promises.settable();

        _zkClient.getData(path, _watcher,
            (int rc, String p, Object ctx, byte[] data, Stat stat) -> {
              KeeperException.Code code = KeeperException.Code.get(rc);
              switch (code) {
                case OK:
                  _zkClient.getACL(path, stat,
                      (int rc1, String p1, Object ctx1, List<ACL> acls, Stat stat1) -> {
                        KeeperException.Code code1 = KeeperException.Code.get(rc1);
                        switch (code1) {
                          case OK:
                            promise.done(new ZKData(p, data, stat, acls));
                            break;
                          default:
                            promise.fail(KeeperException.create(code1, p1));
                        }
                      }, null);
                  break;
                default:
                  promise.fail(KeeperException.create(code, p));
              }
            }, null);
        return promise;
      }
    };
  }
@Override
  public WatchableTask<ZKData> getData(String path) {
    return new WatchableTask<ZKData>("zkGetData: " + path) {
      @Override
      protected Promise<? extends ZKData> run(Context context)
          throws Throwable {
        SettablePromise<ZKData> promise = Promises.settable();

        _zkClient.getData(path, _watcher,
            (int rc, String p, Object ctx, byte[] data, Stat stat) -> {
              KeeperException.Code code = KeeperException.Code.get(rc);
              switch (code) {
                case OK:
                  _zkClient.getACL(path, stat,
                      (int rc1, String p1, Object ctx1, List<ACL> acls, Stat stat1) -> {
                        KeeperException.Code code1 = KeeperException.Code.get(rc1);
                        switch (code1) {
                          case OK:
                            promise.done(new ZKData(p, data, stat, acls));
                            break;
                          default:
                            promise.fail(KeeperException.create(code1, p1));
                        }
                      }, null);
                  break;
                default:
                  promise.fail(KeeperException.create(code, p));
              }
            }, null);
        return promise;
      }
    };
  }
@ Override public WatchableTask < ZKData > getData ( String path ) { return new WatchableTask < ZKData > ( "zkGetData: " + path ) { @ Override protected Promise < ? extends ZKData > run ( Context context ) throws Throwable { SettablePromise < ZKData > promise = Promises . settable ( ) ; _zkClient . getData ( path , _watcher , ( int rc , String p , Object ctx , byte [ ] data , Stat stat ) -> { KeeperException . Code code = KeeperException . Code . get ( rc ) ; switch ( code ) { case OK : _zkClient . getACL ( path , stat , ( int rc1 , String p1 , Object ctx1 , List < ACL > acls , Stat stat1 ) -> { KeeperException . Code code1 = KeeperException . Code . get ( rc1 ) ; switch ( code1 ) { case OK : promise . done ( new ZKData ( p , data , stat , acls ) ) ; break ; default : promise . fail ( KeeperException . create ( code1 , p1 ) ) ; } } , null ) ; break ; default : promise . fail ( KeeperException . create ( code , p ) ) ; } } , null ) ; return promise ; } } ; }
{@inheritDoc}
{