code: private static List<HtmlColumn> buildCache(UIComponent table) {
          if (table instanceof UIData) {
              final int childCount = table.getChildCount();
              if (childCount > 0) {
                  final List<HtmlColumn> results = new ArrayList<>(childCount);
                  for (UIComponent kid : table.getChildren()) {
                      if ((kid instanceof UIColumn) && kid.isRendered()) {
                          results.add((HtmlColumn) kid);
                      }
                  }
                  return results;
              } else {
                  return Collections.emptyList();
              }
          } else {
              int count;
              final Object value = table.getAttributes().get("cachedColumns");
              if ((value != null) && (value instanceof Integer)) {
                  count = ((Integer) value);
              } else {
                  count = 2;
              }
              if (count < 1) {
                  count = 1;
              }
              final List<HtmlColumn> result = new ArrayList<>(count);
              for (int i = 0; i < count; i++) {
                  result.add(new HtmlColumn());
              }
              return result;
          }
  
      }
docs: <p>Return an Iterator over the <code>UIColumn</code> children of the
  specified <code>UIData</code> that have a <code>rendered</code> property
  of <code>true</code>.</p>
  
  @param table the table from which to extract children
  @return the List of all UIColumn children