@Override public boolean isSearchable(int column) throws SQLException { rs.checkNotClosed(); return true; }
@Override public void beforeFirst() throws SQLException { checkNotClosed(); index = 0; }
@Override public boolean isDefinitelyWritable(int column) throws SQLException { rs.checkNotClosed(); return false; }
@Override public boolean isCurrency(int column) throws SQLException { rs.checkNotClosed(); return false; }
@Override public int isNullable(int column) throws SQLException { rs.checkNotClosed(); // TODO: Check generated JSR-303 or JPA annotations for nullability return ResultSetMetaData.columnNullableUnknown; }
@Override public boolean isWritable(int column) throws SQLException { rs.checkNotClosed(); return false; }
@Override public void close() throws SQLException { checkNotClosed(); result = null; index = 0; }
@Override public boolean wasNull() throws SQLException { checkNotClosed(); return wasNull; }
@Override public boolean isBeforeFirst() throws SQLException { checkNotClosed(); return (size() > 0 && index == 0); }
@Override public void afterLast() throws SQLException { checkNotClosed(); index = size() + 1; }
@Override public boolean isFirst() throws SQLException { checkNotClosed(); return (size() > 0 && index == 1); }
@Override public boolean isSigned(int column) throws SQLException { rs.checkNotClosed(); Field<?> field = rs.result.field(column - 1); Class<?> type = field.getType(); return Number.class.isAssignableFrom(type) && !UNumber.class.isAssignableFrom(type); }
@Override public String getColumnClassName(int column) throws SQLException { rs.checkNotClosed(); return rs.result.field(column - 1).getType().getName(); } }
@Override public boolean last() throws SQLException { checkNotClosed(); return absolute(size()); }
@Override public boolean isAfterLast() throws SQLException { checkNotClosed(); return (size() > 0 && index > size()); }
@Override public boolean isLast() throws SQLException { checkNotClosed(); return (size() > 0 && index == size()); }
@Override public int getColumnCount() throws SQLException { rs.checkNotClosed(); return rs.result.fieldsRow().size(); }
@Override public String getColumnName(int column) throws SQLException { rs.checkNotClosed(); return rs.result.field(column - 1).getName(); }
@Override public int findColumn(String columnLabel) throws SQLException { checkNotClosed(); Field<?> field = result.field(columnLabel); if (field == null) throw new SQLException("No such column : " + columnLabel); return result.fieldsRow().indexOf(field) + 1; }
@Override public String getColumnTypeName(int column) throws SQLException { rs.checkNotClosed(); return rs.result.field(column - 1).getDataType().getTypeName(); }