@ngageoint/geopackage
Version:
GeoPackage JavaScript Library
213 lines • 8.8 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExtensionDao = void 0;
var extension_1 = require("./extension");
var dao_1 = require("../dao/dao");
var columnValues_1 = require("../dao/columnValues");
var tableCreator_1 = require("../db/tableCreator");
/**
* Extension Data Access Object
* @class
* @extends Dao
*/
var ExtensionDao = /** @class */ (function (_super) {
__extends(ExtensionDao, _super);
function ExtensionDao() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.gpkgTableName = ExtensionDao.TABLE_NAME;
_this.idColumns = [
ExtensionDao.COLUMN_TABLE_NAME,
ExtensionDao.COLUMN_COLUMN_NAME,
ExtensionDao.COLUMN_EXTENSION_NAME,
];
return _this;
}
/**
* Creates an Extension object from the raw database row
* @param {object} row raw database row
* @returns {Extension}
*/
ExtensionDao.prototype.createObject = function (row) {
var e = new extension_1.Extension();
e.table_name = row['table_name'];
e.column_name = row['column_name'];
e.extension_name = row['extension_name'];
e.definition = row['definition'];
e.scope = row['scope'];
return e;
};
/**
* Query by extension name and return the first result
* @param {String} extensionName extension name
* @returns {Extension}
*/
ExtensionDao.prototype.queryByExtension = function (extensionName) {
var results = this.queryForAllEq(ExtensionDao.COLUMN_EXTENSION_NAME, extensionName);
if (!results[0])
return;
var e = this.createObject(results[0]);
return e;
};
/**
* Query by extension name and return all results
* @param {String} extensionName extension name
* @returns {Extension[]}
*/
ExtensionDao.prototype.queryAllByExtension = function (extensionName) {
var e_1, _a;
var extensions = [];
try {
for (var _b = __values(this.queryForAllEq(ExtensionDao.COLUMN_EXTENSION_NAME, extensionName)), _c = _b.next(); !_c.done; _c = _b.next()) {
var row = _c.value;
var e = this.createObject(row);
extensions.push(e);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
return extensions;
};
/**
* Query by extension name and table name and return all results
* @param {String} extensionName extension name
* @param {String} tableName table name
* @returns {Extension[]}
*/
ExtensionDao.prototype.queryByExtensionAndTableName = function (extensionName, tableName) {
var e_2, _a;
var values = new columnValues_1.ColumnValues();
values.addColumn(ExtensionDao.COLUMN_EXTENSION_NAME, extensionName);
values.addColumn(ExtensionDao.COLUMN_TABLE_NAME, tableName);
var extensions = [];
try {
for (var _b = __values(this.queryForFieldValues(values)), _c = _b.next(); !_c.done; _c = _b.next()) {
var row = _c.value;
extensions.push(this.createObject(row));
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_2) throw e_2.error; }
}
return extensions;
};
/**
* Query by extension name and table name and return all results
* @param {String} extensionName extension name
* @param {String} tableName table name
* @param {String} columnName column name
* @returns {Extension[]}
*/
ExtensionDao.prototype.queryByExtensionAndTableNameAndColumnName = function (extensionName, tableName, columnName) {
var e_3, _a;
var values = new columnValues_1.ColumnValues();
values.addColumn(ExtensionDao.COLUMN_EXTENSION_NAME, extensionName);
if (tableName !== null && tableName !== undefined) {
values.addColumn(ExtensionDao.COLUMN_TABLE_NAME, tableName);
}
if (columnName !== null && columnName !== undefined) {
values.addColumn(ExtensionDao.COLUMN_COLUMN_NAME, columnName);
}
var extensions = [];
try {
for (var _b = __values(this.queryForFieldValues(values)), _c = _b.next(); !_c.done; _c = _b.next()) {
var row = _c.value;
var e = this.createObject(row);
extensions.push(e);
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_3) throw e_3.error; }
}
return extensions;
};
/**
* Creates the extensions table
*/
ExtensionDao.prototype.createTable = function () {
var tc = new tableCreator_1.TableCreator(this.geoPackage);
return tc.createExtensions();
};
/**
* Deletes all extension entries with this name
* @param {String} extensionName extension name to delete
* @returns {Number} Number of extensions deleted
*/
ExtensionDao.prototype.deleteByExtension = function (extensionName) {
var values = new columnValues_1.ColumnValues();
values.addColumn(ExtensionDao.COLUMN_EXTENSION_NAME, extensionName);
return this.deleteWhere(this.buildWhere(values, '='), this.buildWhereArgs(values));
};
/**
* Deletes all extension entries with this name and table name
* @param {String} extensionName extension name to delete
* @param {String} tableName table name to delete
* @returns {Number} Number of extensions deleted
*/
ExtensionDao.prototype.deleteByExtensionAndTableName = function (extensionName, tableName) {
var values = new columnValues_1.ColumnValues();
values.addColumn(ExtensionDao.COLUMN_EXTENSION_NAME, extensionName);
values.addColumn(ExtensionDao.COLUMN_TABLE_NAME, tableName);
return this.deleteWhere(this.buildWhere(values, 'and'), this.buildWhereArgs(values));
};
/**
* Deletes all extension entries with this name and table name
* @param {String} extensionName extension name to delete
* @param {String} tableName table name to delete
* @returns {Number} Number of extensions deleted
*/
ExtensionDao.prototype.deleteByExtensionAndTableNameAndColumnName = function (extensionName, tableName, columnName) {
var values = new columnValues_1.ColumnValues();
values.addColumn(ExtensionDao.COLUMN_EXTENSION_NAME, extensionName);
values.addColumn(ExtensionDao.COLUMN_TABLE_NAME, tableName);
values.addColumn(ExtensionDao.COLUMN_COLUMN_NAME, columnName);
return this.deleteWhere(this.buildWhere(values, 'and'), this.buildWhereArgs(values));
};
ExtensionDao.TABLE_NAME = 'gpkg_extensions';
ExtensionDao.COLUMN_TABLE_NAME = 'table_name';
ExtensionDao.COLUMN_COLUMN_NAME = 'column_name';
ExtensionDao.COLUMN_EXTENSION_NAME = 'extension_name';
ExtensionDao.COLUMN_DEFINITION = 'definition';
ExtensionDao.COLUMN_SCOPE = 'scope';
return ExtensionDao;
}(dao_1.Dao));
exports.ExtensionDao = ExtensionDao;
//# sourceMappingURL=extensionDao.js.map