}
private boolean isVisible(HTable headers, String key, RepFactory factory) {
if (columnsJson == null)
return true;
HNode hn = headers.getParentHNode();
if (hn != null) {
HNodePath hPath = hn.getHNodePath(factory);
String path = hPath.toColumnNamePath() + "/" + key;
Boolean b = columnsCache.get(path);
if (b != null)
return b;
HNode first = null;
JSONArray t = columnsJson;
JSONObject tree = null;
while (first != hn) {
first = hPath.getFirst();
tree = getCorrespondingObject(t, first.getColumnName());
if (tree == null || !tree.has("children")) {
columnsCache.put(path, true);
return true;
}
t = tree.getJSONArray("children");