code: private ResultSetMetaData getMetaData() {
  
          if (metadata == null) {
              try {
                  metadata = resultSet.getMetaData();
              } catch (SQLException e) {
                  throw new FacesException(e);
              }
          }
          return (metadata);
  
      }
docs: <p>Return the <code>ResultSetMetaData</code> for the
  <code>ResultSet</code> we are wrapping, caching it the first time
  it is returned.</p>
  
  @throws FacesException if the <code>ResultSetMetaData</code>
  cannot be acquired