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: }