ingo@1127: /*
ingo@1127: * Copyright (c) 2010 by Intevation GmbH
ingo@1127: *
ingo@1127: * This program is free software under the LGPL (>=v2.1)
ingo@1127: * Read the file LGPL.txt coming with the software for details
ingo@1127: * or visit http://www.gnu.org/licenses/ if it does not exist.
ingo@1127: */
ingo@1127:
tim@132: package de.intevation.gnv.geobackend.sde.datasources;
tim@132:
tim@132: import java.sql.ResultSetMetaData;
tim@132: import java.sql.SQLException;
sascha@886:
tim@132: import java.util.List;
tim@132:
tim@132: /**
tim@884: * This Class is an Wrapperclass for the ResultSetMetaData and the
tim@884: * ColumnDefinitions which are retrieved from the ArcSDE-Backend.
sascha@887: * @author Tim Englich
tim@132: *
tim@132: */
tim@132: public class ArcSDEResultSetMetaData implements ResultSetMetaData {
tim@132:
tim@884: /**
tim@884: * The Columndefinitions which are required to explain the retrieved Data.
tim@884: */
tim@132: private List columnDefinitions = null;
sascha@885:
tim@132: /**
tim@132: * Constructor
tim@132: */
tim@132: public ArcSDEResultSetMetaData(List columnDefinitions) {
tim@132: this.columnDefinitions = columnDefinitions;
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#getCatalogName(int)
tim@132: */
tim@132: public String getCatalogName(int column) throws SQLException {
tim@132: return null;
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#getColumnClassName(int)
tim@132: */
tim@132: public String getColumnClassName(int column) throws SQLException {
tim@132: int type = this.getColumnType(column);
tim@877: if (type == ColDefinition.INT16){
tim@877: return "Integer";
tim@877: }else if (type == ColDefinition.INT32){
tim@877: return "Integer";
tim@877: }else if (type == ColDefinition.INT64){
tim@877: return "Long";
tim@877: }else if (type == ColDefinition.NSTRING || type == ColDefinition.STRING){
tim@877: return "String";
tim@877: }else if (type == ColDefinition.DATE){
tim@877: return "Date";
tim@877: }else if (type == ColDefinition.FLOAT){
tim@877: return "Float";
tim@877: }else if (type == ColDefinition.FLOAT32){
tim@877: return "Double";
tim@877: }else if (type == ColDefinition.FLOAT64){
tim@877: return "Double";
tim@877: }else{
tim@877: return java.lang.Object.class.getName();
tim@132: }
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#getColumnCount()
tim@132: */
tim@132: public int getColumnCount() throws SQLException {
tim@132: return columnDefinitions.size();
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#getColumnDisplaySize(int)
tim@132: */
tim@132: public int getColumnDisplaySize(int column) throws SQLException {
tim@132: return 0;
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#getColumnLabel(int)
tim@132: */
tim@132: public String getColumnLabel(int column) throws SQLException {
tim@132: return columnDefinitions.get(column-1).getName();
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#getColumnName(int)
tim@132: */
tim@132: public String getColumnName(int column) throws SQLException {
tim@132: return columnDefinitions.get(column-1).getName();
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#getColumnType(int)
tim@132: */
tim@132: public int getColumnType(int column) throws SQLException {
tim@132: return columnDefinitions.get(column-1).getType();
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#getColumnTypeName(int)
tim@132: */
tim@132: public String getColumnTypeName(int column) throws SQLException {
tim@132: return null;
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#getPrecision(int)
tim@132: */
tim@132: public int getPrecision(int column) throws SQLException {
tim@132: return 0;
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#getScale(int)
tim@132: */
tim@132: public int getScale(int column) throws SQLException {
tim@132: return 0;
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#getSchemaName(int)
tim@132: */
tim@132: public String getSchemaName(int column) throws SQLException {
tim@132: return null;
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#getTableName(int)
tim@132: */
tim@132: public String getTableName(int column) throws SQLException {
tim@132: return null;
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#isAutoIncrement(int)
tim@132: */
tim@132: public boolean isAutoIncrement(int column) throws SQLException {
tim@132: return false;
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#isCaseSensitive(int)
tim@132: */
tim@132: public boolean isCaseSensitive(int column) throws SQLException {
tim@132: return false;
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#isCurrency(int)
tim@132: */
tim@132: public boolean isCurrency(int column) throws SQLException {
tim@132: return false;
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#isDefinitelyWritable(int)
tim@132: */
tim@132: public boolean isDefinitelyWritable(int column) throws SQLException {
tim@132: return false;
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#isNullable(int)
tim@132: */
tim@132: public int isNullable(int column) throws SQLException {
tim@132: return 0;
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#isReadOnly(int)
tim@132: */
tim@132: public boolean isReadOnly(int column) throws SQLException {
tim@132: return true;
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#isSearchable(int)
tim@132: */
tim@132: public boolean isSearchable(int column) throws SQLException {
tim@132: return true;
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#isSigned(int)
tim@132: */
tim@132: public boolean isSigned(int column) throws SQLException {
tim@132: return false;
tim@132: }
tim@132:
tim@132: /**
tim@132: * @see java.sql.ResultSetMetaData#isWritable(int)
tim@132: */
tim@132: public boolean isWritable(int column) throws SQLException {
tim@132: return false;
tim@132: }
tim@132:
tim@884: /**
tim@884: * @see java.sql.Wrapper#isWrapperFor(java.lang.Class)
tim@884: */
tim@380: public boolean isWrapperFor(Class> iface) throws SQLException {
tim@380: return false;
tim@380: }
tim@380:
tim@884: /**
tim@884: * @see java.sql.Wrapper#unwrap(java.lang.Class)
tim@884: */
tim@380: public T unwrap(Class iface) throws SQLException {
tim@380: return null;
tim@380: }
tim@380:
tim@132: }