/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2003-2008, Open Source Geospatial Foundation (OSGeo)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package org.geotools.data.vpf.io;
import org.geotools.data.vpf.ifc.DataTypesDefinition;
import org.geotools.data.vpf.util.DataUtils;
/**
* This class contains definition of VPF standard table column definition
* according to specification found in: "Interface Standard for Vector Product
* Format." Objects of this type are immutable. Created: Thu Jan 02 23:11:27
* 2003
*
* @author <a href="mailto:kobit@users.fs.net">Artur Hefczyc</a>
* @source $URL$
* @version 1.0
*/
public class TableColumnDef implements DataTypesDefinition {
/** Describe variable <code>name</code> here. */
private String name = null;
/** Describe variable <code>type</code> here. */
private char type = CHAR_NULL_VALUE;
/** Describe variable <code>elementsNumber</code> here. */
private int elementsNumber = 0;
/** Describe variable <code>keyType</code> here. */
private char keyType = CHAR_NULL_VALUE;
/** Describe variable <code>colDesc</code> here. */
private String colDesc = null;
/** Describe variable <code>valDescTableName</code> here. */
private String valDescTableName = null;
/** Describe variable <code>thematicIdx</code> here. */
private String thematicIdx = null;
/** Describe variable <code>narrTable</code> here. */
private String narrTable = null;
/**
* Creates a new <code>TableColumnDef</code> instance.
*
* @param name a <code>String</code> value
* @param type a <code>char</code> value
* @param elementsNumber an <code>int</code> value
* @param keyType a <code>char</code> value
* @param colDesc a <code>String</code> value
* @param valDescTableName a <code>String</code> value
* @param thematicIdx a <code>String</code> value
* @param narrTable a <code>String</code> value
*/
public TableColumnDef(String name, char type, int elementsNumber,
char keyType, String colDesc, String valDescTableName,
String thematicIdx, String narrTable) {
this.name = name;
this.type = type;
this.elementsNumber = elementsNumber;
this.keyType = keyType;
this.colDesc = colDesc;
this.valDescTableName = valDescTableName;
this.thematicIdx = thematicIdx;
this.narrTable = narrTable;
}
/**
* Describe <code>toString</code> method here.
*
* @return a <code>String</code> value
*/
public String toString() {
String emptyStr = "";
StringBuffer buff = new StringBuffer();
StringBuffer sb = null;
sb = new StringBuffer(emptyStr + name);
sb.setLength(16);
buff.append(sb);
sb = new StringBuffer(emptyStr + type);
sb.setLength(5);
buff.append(sb);
sb = new StringBuffer(emptyStr + elementsNumber);
sb.setLength(5);
buff.append(sb);
sb = new StringBuffer(emptyStr + keyType);
sb.setLength(4);
buff.append(sb);
sb = new StringBuffer(emptyStr + colDesc);
sb.setLength(55);
buff.append(sb);
sb = new StringBuffer(emptyStr + valDescTableName);
sb.setLength(5);
buff.append(sb);
sb = new StringBuffer(emptyStr + thematicIdx);
sb.setLength(5);
buff.append(sb);
sb = new StringBuffer(emptyStr + narrTable);
sb.setLength(5);
buff.append(sb);
return buff.toString();
}
/**
* Gets the value of name
*
* @return the value of name
*/
public String getName() {
return this.name;
}
/**
* Gets the value of type
*
* @return the value of type
*/
public char getType() {
return this.type;
}
/**
* Gets the value of elementsNumber
*
* @return the value of elementsNumber
*/
public int getElementsNumber() {
return this.elementsNumber;
}
/**
* Gets the value of keyType
*
* @return the value of keyType
*/
public char getKeyType() {
return this.keyType;
}
/**
* Gets the value of colDesc
*
* @return the value of colDesc
*/
public String getColDesc() {
return this.colDesc;
}
/**
* Gets the value of valDescTableName
*
* @return the value of valDescTableName
*/
public String getValDescTableName() {
return this.valDescTableName;
}
/**
* Gets the value of thematicIdx
*
* @return the value of thematicIdx
*/
public String getThematicIdx() {
return this.thematicIdx;
}
/**
* Gets the value of narrTable
*
* @return the value of narrTable
*/
public String getNarrTable() {
return this.narrTable;
}
/**
* Describe <code>getColumnSize</code> method here.
*
* @return an <code>int</code> value
*/
public int getColumnSize() {
return DataUtils.getDataTypeSize(type) * elementsNumber;
}
/**
* Describe <code>isNumeric</code> method here.
*
* @return a <code>boolean</code> value
*/
public boolean isNumeric() {
return DataUtils.isNumeric(type);
}
}
// TableColumnDef