code: public static View of(Iterable<Column> columns, Iterable<Row> rows) {
  
      Assert.notNull(columns, "Columns [null] are required");
      Assert.isTrue(columns.iterator().hasNext(), "Columns [empty] are required");
  
      return new AbstractView() {
  
        @Override
        public Iterable<Column> columns() {
          return columns;
        }
  
        @Override
        public Iterator<Row> iterator() {
          return nullSafeIterable(rows).iterator();
        }
      };
    }
docs: Factory method constructing a new {@link View} initialized with the given {@link Column Columns}
  and {@link Row Rows}.
  
  @param columns {@link Column Columns} defining the projection of the {@link View}.
  @param rows {@link Row Rows} defining the contents of thew {@link View}.
  @return a new {@link View} initialized with the given {@link Column Columns} and {@link Row Rows}.
  @throws IllegalArgumentException if {@link Column Columns} are {@literal null} or empty.
  @see org.cp.elements.data.struct.tabular.Column
  @see org.cp.elements.data.struct.tabular.Row
  @see java.lang.Iterable