) {
mHandler = handler;
mTableURI = tableURI;
mCache = new NodeCache(zkClient, ZooKeeperUtils.getTableLayoutFile(mTableURI).getPath());
mExecutor = Executors.newSingleThreadExecutor(THREAD_FACTORY);
mCache.getListenable().addListener(new NodeCacheListener() {
/** {@inheritDoc}. */
@Override
public void nodeChanged() throws Exception {
mHandler.update(getLayoutID());
}