13c5114b8SDamjan Jovanovic /**************************************************************
23c5114b8SDamjan Jovanovic  *
33c5114b8SDamjan Jovanovic  * Licensed to the Apache Software Foundation (ASF) under one
43c5114b8SDamjan Jovanovic  * or more contributor license agreements.  See the NOTICE file
53c5114b8SDamjan Jovanovic  * distributed with this work for additional information
63c5114b8SDamjan Jovanovic  * regarding copyright ownership.  The ASF licenses this file
73c5114b8SDamjan Jovanovic  * to you under the Apache License, Version 2.0 (the
83c5114b8SDamjan Jovanovic  * "License"); you may not use this file except in compliance
93c5114b8SDamjan Jovanovic  * with the License.  You may obtain a copy of the License at
103c5114b8SDamjan Jovanovic  *
113c5114b8SDamjan Jovanovic  *   http://www.apache.org/licenses/LICENSE-2.0
123c5114b8SDamjan Jovanovic  *
133c5114b8SDamjan Jovanovic  * Unless required by applicable law or agreed to in writing,
143c5114b8SDamjan Jovanovic  * software distributed under the License is distributed on an
153c5114b8SDamjan Jovanovic  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
163c5114b8SDamjan Jovanovic  * KIND, either express or implied.  See the License for the
173c5114b8SDamjan Jovanovic  * specific language governing permissions and limitations
183c5114b8SDamjan Jovanovic  * under the License.
193c5114b8SDamjan Jovanovic  *
203c5114b8SDamjan Jovanovic  *************************************************************/
213c5114b8SDamjan Jovanovic 
223c5114b8SDamjan Jovanovic package com.sun.star.sdbcx.comp.postgresql;
233c5114b8SDamjan Jovanovic 
243c5114b8SDamjan Jovanovic import java.util.List;
253c5114b8SDamjan Jovanovic import java.util.Map;
263c5114b8SDamjan Jovanovic 
27*60ba3965SDamjan Jovanovic import org.apache.openoffice.comp.sdbc.dbtools.comphelper.CompHelper;
28*60ba3965SDamjan Jovanovic import org.apache.openoffice.comp.sdbc.dbtools.sdbcx.OColumnContainer;
29*60ba3965SDamjan Jovanovic import org.apache.openoffice.comp.sdbc.dbtools.sdbcx.OContainer;
30*60ba3965SDamjan Jovanovic import org.apache.openoffice.comp.sdbc.dbtools.sdbcx.OIndexContainer;
31*60ba3965SDamjan Jovanovic import org.apache.openoffice.comp.sdbc.dbtools.sdbcx.OKey;
32*60ba3965SDamjan Jovanovic import org.apache.openoffice.comp.sdbc.dbtools.sdbcx.OKeyContainer;
33*60ba3965SDamjan Jovanovic import org.apache.openoffice.comp.sdbc.dbtools.sdbcx.OTable;
34*60ba3965SDamjan Jovanovic import org.apache.openoffice.comp.sdbc.dbtools.sdbcx.SqlTableHelper;
35*60ba3965SDamjan Jovanovic import org.apache.openoffice.comp.sdbc.dbtools.sdbcx.SqlTableHelper.ColumnDescription;
36*60ba3965SDamjan Jovanovic import org.apache.openoffice.comp.sdbc.dbtools.sdbcx.descriptors.SdbcxTableDescriptor;
37*60ba3965SDamjan Jovanovic 
383c5114b8SDamjan Jovanovic import com.sun.star.beans.XPropertySet;
393c5114b8SDamjan Jovanovic import com.sun.star.container.ElementExistException;
403c5114b8SDamjan Jovanovic import com.sun.star.container.NoSuchElementException;
413c5114b8SDamjan Jovanovic import com.sun.star.lang.IndexOutOfBoundsException;
423c5114b8SDamjan Jovanovic import com.sun.star.sdbc.SQLException;
433c5114b8SDamjan Jovanovic import com.sun.star.sdbc.XConnection;
443c5114b8SDamjan Jovanovic 
453c5114b8SDamjan Jovanovic public class PostgresqlTable extends OTable {
PostgresqlTable(XConnection connection, OContainer tables, String name, String catalogName, String schemaName, String description, String type)4668b6fe01SDamjan Jovanovic     public PostgresqlTable(XConnection connection, OContainer tables, String name,
473c5114b8SDamjan Jovanovic             String catalogName, String schemaName, String description, String type) {
485b780c4aSDamjan Jovanovic         super(name, true, connection, tables);
493c5114b8SDamjan Jovanovic         super.catalogName = catalogName;
503c5114b8SDamjan Jovanovic         super.schemaName = schemaName;
513c5114b8SDamjan Jovanovic         super.description = description;
523c5114b8SDamjan Jovanovic         super.type = type;
533c5114b8SDamjan Jovanovic     }
543c5114b8SDamjan Jovanovic 
553c5114b8SDamjan Jovanovic     @Override
createDataDescriptor()563c5114b8SDamjan Jovanovic     public XPropertySet createDataDescriptor() {
5768b6fe01SDamjan Jovanovic         SdbcxTableDescriptor descriptor = new SdbcxTableDescriptor(true);
585b780c4aSDamjan Jovanovic         synchronized (this) {
593c5114b8SDamjan Jovanovic             CompHelper.copyProperties(this, descriptor);
603c5114b8SDamjan Jovanovic         }
613c5114b8SDamjan Jovanovic         return descriptor;
623c5114b8SDamjan Jovanovic     }
633c5114b8SDamjan Jovanovic 
643c5114b8SDamjan Jovanovic     @Override
setName(String name)653c5114b8SDamjan Jovanovic     public void setName(String name) {
663c5114b8SDamjan Jovanovic         // TODO Auto-generated method stub
673c5114b8SDamjan Jovanovic 
683c5114b8SDamjan Jovanovic     }
693c5114b8SDamjan Jovanovic 
703c5114b8SDamjan Jovanovic     @Override
rename(String name)713c5114b8SDamjan Jovanovic     public void rename(String name) throws SQLException, ElementExistException {
723c5114b8SDamjan Jovanovic         // TODO Auto-generated method stub
733c5114b8SDamjan Jovanovic 
743c5114b8SDamjan Jovanovic     }
753c5114b8SDamjan Jovanovic 
763c5114b8SDamjan Jovanovic     @Override
alterColumnByIndex(int index, XPropertySet descriptor)773c5114b8SDamjan Jovanovic     public void alterColumnByIndex(int index, XPropertySet descriptor) throws SQLException, IndexOutOfBoundsException {
783c5114b8SDamjan Jovanovic         // TODO Auto-generated method stub
793c5114b8SDamjan Jovanovic 
803c5114b8SDamjan Jovanovic     }
813c5114b8SDamjan Jovanovic 
823c5114b8SDamjan Jovanovic     @Override
alterColumnByName(String name, XPropertySet descriptor)833c5114b8SDamjan Jovanovic     public void alterColumnByName(String name, XPropertySet descriptor) throws SQLException, NoSuchElementException {
843c5114b8SDamjan Jovanovic         // TODO Auto-generated method stub
853c5114b8SDamjan Jovanovic 
863c5114b8SDamjan Jovanovic     }
873c5114b8SDamjan Jovanovic 
883c5114b8SDamjan Jovanovic     @Override
refreshColumns()893c5114b8SDamjan Jovanovic     protected OContainer refreshColumns() {
903c5114b8SDamjan Jovanovic         try {
913c5114b8SDamjan Jovanovic             List<ColumnDescription> columns = new SqlTableHelper().readColumns(getConnection().getMetaData(), catalogName, schemaName, getName());
925b780c4aSDamjan Jovanovic             return new OColumnContainer(this, isCaseSensitive(), columns, this, getConnection().getMetaData());
9340ca8078SDamjan Jovanovic         } catch (ElementExistException elementExistException) {
9440ca8078SDamjan Jovanovic             return null;
953c5114b8SDamjan Jovanovic         } catch (SQLException sqlException) {
963c5114b8SDamjan Jovanovic             return null;
973c5114b8SDamjan Jovanovic         }
983c5114b8SDamjan Jovanovic     }
993c5114b8SDamjan Jovanovic 
1003c5114b8SDamjan Jovanovic     @Override
refreshIndexes()1013c5114b8SDamjan Jovanovic     protected OContainer refreshIndexes() {
1023c5114b8SDamjan Jovanovic         try {
1033c5114b8SDamjan Jovanovic             List<String> indexes = new SqlTableHelper().readIndexes(getConnection().getMetaData(), catalogName, schemaName, getName(), this);
1045b780c4aSDamjan Jovanovic             return new OIndexContainer(this, indexes, isCaseSensitive(), this);
10540ca8078SDamjan Jovanovic         } catch (ElementExistException elementExistException) {
10640ca8078SDamjan Jovanovic             return null;
1073c5114b8SDamjan Jovanovic         } catch (SQLException sqlException) {
1083c5114b8SDamjan Jovanovic             return null;
1093c5114b8SDamjan Jovanovic         }
1103c5114b8SDamjan Jovanovic     }
1113c5114b8SDamjan Jovanovic 
1123c5114b8SDamjan Jovanovic     @Override
refreshKeys()1133c5114b8SDamjan Jovanovic     protected OContainer refreshKeys() {
1143c5114b8SDamjan Jovanovic         try {
1153c5114b8SDamjan Jovanovic             Map<String, OKey> keys = new SqlTableHelper().readKeys(
1163c5114b8SDamjan Jovanovic                     getConnection().getMetaData(), catalogName, schemaName, getName(), isCaseSensitive(), this);
11768b6fe01SDamjan Jovanovic             return new OKeyContainer(this, isCaseSensitive(), keys, this);
11840ca8078SDamjan Jovanovic         } catch (ElementExistException elementExistException) {
11940ca8078SDamjan Jovanovic             return null;
1203c5114b8SDamjan Jovanovic         } catch (SQLException sqlException) {
1213c5114b8SDamjan Jovanovic             return null;
1223c5114b8SDamjan Jovanovic         }
1233c5114b8SDamjan Jovanovic     }
1243c5114b8SDamjan Jovanovic 
1253c5114b8SDamjan Jovanovic 
1263c5114b8SDamjan Jovanovic }
127