@ngageoint/geopackage
Version:
GeoPackage JavaScript Library
72 lines (71 loc) • 2.86 kB
TypeScript
/**
* simpleAttributesTable module.
* @module extension/relatedTables
*/
import { UserRelatedTable } from './userRelatedTable';
import { RelationType } from './relationType';
import { UserColumn } from '../../user/userColumn';
import { GeoPackageDataType } from '../../db/geoPackageDataType';
/**
* Simple Attributes Requirements Class User-Defined Related Data Table
* @class
* @extends UserRelatedTable
* @param {string} tableName table name
* @param {module:user/userColumn~UserColumn[]} columns attribute columns
* @param {string[]} requiredColumns required column names
*/
export declare class SimpleAttributesTable extends UserRelatedTable {
static readonly RELATION_TYPE: RelationType;
static readonly COLUMN_ID: string;
readonly TABLE_TYPE: string;
constructor(tableName: string, columns?: UserColumn[], requiredColumns?: string[]);
/**
* Validate that Simple Attributes columns to verify at least one non id
* column exists and that all columns are simple data types
*/
validateColumns(): boolean;
/**
* Create a simple attributes table with the columns
* @param {string} tableName name of the table
* @param {module:user/userColumn~UserColumn[]} additionalColumns additional columns
* @return {module:extension/relatedTables~SimpleAttributesTable}
*/
static create(tableName: string, additionalColumns?: UserColumn[]): SimpleAttributesTable;
/**
* Get the required columns
* @param {string} [idColumnName=id] id column name
* @return {string[]}
*/
static requiredColumns(idColumnName?: string): string[];
/**
* Get the number of required columns
* @return {Number}
*/
static numRequiredColumns(): number;
/**
* Create the required columns
* @param {Number} [startingIndex=0] starting index of the required columns
* @param {string} [idColumnName=id] id column name
* @return {module:user/userColumn~UserColumn[]}
*/
static createRequiredColumns(startingIndex?: number, idColumnName?: string): UserColumn[];
/**
* Create the primary key id column
* @param {Number} index index of the column
* @param {string} idColumnName name of the id column
* @return {module:user/userColumn~UserColumn}
*/
static createIdColumn(index: number, idColumnName: string): UserColumn;
/**
* Determine if the column is a simple column
* @param {module:user/userColumn~UserColumn} column column to check
* @return {Boolean}
*/
static isSimple(column: UserColumn): boolean;
/**
* Determine if the data type is a simple type: TEXT, INTEGER, or REAL
* @param {module:db/geoPackageDataType~GPKGDataType} dataType
* @return {Boolean}
*/
static isSimpleDataType(dataType: GeoPackageDataType): boolean;
}