org.qamatic.mintleaf.ColumnMetaDataCollection Maven / Gradle / Ivy
/*
*
* *
* * *
* * * ~
* * * ~ The MIT License (MIT)
* * * ~
* * * ~ Copyright (c) 2010-2017 QAMatic Team
* * * ~
* * * ~ Permission is hereby granted, free of charge, to any person obtaining a copy
* * * ~ of this software and associated documentation files (the "Software"), to deal
* * * ~ in the Software without restriction, including without limitation the rights
* * * ~ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* * * ~ copies of the Software, and to permit persons to whom the Software is
* * * ~ furnished to do so, subject to the following conditions:
* * * ~
* * * ~ The above copyright notice and this permission notice shall be included in all
* * * ~ copies or substantial portions of the Software.
* * * ~
* * * ~ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* * * ~ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* * * ~ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* * * ~ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* * * ~ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* * * ~ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* * * ~ SOFTWARE.
* * * ~
* * * ~
* * *
* *
* *
*
* /
*/
package org.qamatic.mintleaf;
import java.util.ArrayList;
public class ColumnMetaDataCollection extends ArrayList implements MetaDataCollection {
private String objectName;
public ColumnMetaDataCollection() {
}
public ColumnMetaDataCollection(String objectName) {
this.objectName = objectName;
}
public ColumnMetaDataCollection(Column... columns) {
for (Column column : columns) {
add(column);
}
}
@Override
public boolean add(Column column) {
Column col = this.findColumn(column.getColumnName());
if (col != null) {
MintleafException.throwException("column already exists " + column.getColumnName());
}
return super.add(column);
}
public void add(int idx, Column column) {
Column col = this.findColumn(column.getColumnName());
if (col != null) {
MintleafException.throwException("column already exists " + column.getColumnName());
}
add(idx, column);
}
@Override
public int getIndex(String columnName) {
columnName = columnName.toUpperCase();
for (int i = 0; i < this.size(); i++) {
if (this.get(i).getColumnName().equalsIgnoreCase(columnName)) {
return i;
}
}
return -1;
}
@Override
public Column findColumn(String columnName) {
int idx = getIndex(columnName);
if (idx != -1) {
return this.get(idx);
}
return null;
}
@Override
public Column getColumn(int index) {
return get(index);
}
public String getObjectName() {
return objectName;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
for (Column mdata : this) {
if (sb.length() != 0) {
sb.append(", ");
}
sb.append(mdata.getColumnName());
}
return sb.toString();
}
@Override
public int getColumnCount() {
return this.size();
}
@Override
public boolean isAutoIncrement(int column) {
return false;
}
@Override
public boolean isCaseSensitive(int column) {
return false;
}
@Override
public boolean isSearchable(int column) {
return false;
}
@Override
public boolean isCurrency(int column) {
return false;
}
@Override
public int isNullable(int column) {
return 0;
}
@Override
public boolean isSigned(int column) {
return false;
}
@Override
public int getColumnDisplaySize(int column) {
return 0;
}
@Override
public String getColumnLabel(int column) {
return null;
}
@Override
public String getColumnName(int column) {
return this.get(column).getColumnName();
}
@Override
public String getSchemaName(int column) {
return null;
}
@Override
public int getPrecision(int column) {
return 0;
}
@Override
public int getScale(int column) {
return 0;
}
@Override
public String getTableName(int column) {
return null;
}
@Override
public String getCatalogName(int column) {
return null;
}
@Override
public int getColumnType(int column) {
return this.get(column).getDatatype();
}
@Override
public String getColumnTypeName(int column) {
return null;
}
@Override
public boolean isReadOnly(int column) {
return false;
}
@Override
public boolean isWritable(int column) {
return false;
}
@Override
public boolean isDefinitelyWritable(int column) {
return false;
}
@Override
public String getColumnClassName(int column) {
return null;
}
}