| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| 'use strict'; |
| const util = require('util'); |
| const events = require('events'); |
| /** |
| * Creates a new instance of DataCollection |
| * @param {String} name Name of the data object. |
| * @classdesc Describes a table or a view |
| * @alias module:metadata~DataCollection |
| * @constructor |
| * @abstract |
| */ |
| function DataCollection(name) { |
| events.EventEmitter.call(this); |
| this.setMaxListeners(0); |
| //private |
| Object.defineProperty(this, 'loading', { value: false, enumerable: false, writable: true }); |
| Object.defineProperty(this, 'loaded', { value: false, enumerable: false, writable: true }); |
| /** |
| * Name of the object |
| * @type {String} |
| */ |
| this.name = name; |
| /** |
| * False-positive probability for SSTable Bloom filters. |
| * @type {number} |
| */ |
| this.bloomFilterFalsePositiveChance = 0; |
| /** |
| * Level of caching: all, keys_only, rows_only, none |
| * @type {String} |
| */ |
| this.caching = null; |
| /** |
| * A human readable comment describing the table. |
| * @type {String} |
| */ |
| this.comment = null; |
| /** |
| * Specifies the time to wait before garbage collecting tombstones (deletion markers) |
| * @type {number} |
| */ |
| this.gcGraceSeconds = 0; |
| /** |
| * Compaction strategy class used for the table. |
| * @type {String} |
| */ |
| this.compactionClass = null; |
| /** |
| * Associative-array containing the compaction options keys and values. |
| * @type {Object} |
| */ |
| this.compactionOptions = null; |
| /** |
| * Associative-array containing the compression options. |
| * @type {Object} |
| */ |
| this.compression = null; |
| /** |
| * Specifies the probability of read repairs being invoked over all replicas in the current data center. |
| * @type {number} |
| */ |
| this.localReadRepairChance = 0; |
| /** |
| * Specifies the probability with which read repairs should be invoked on non-quorum reads. The value must be |
| * between 0 and 1. |
| * @type {number} |
| */ |
| this.readRepairChance = 0; |
| /** |
| * An associative Array containing extra metadata for the table. |
| * <p> |
| * For Apache Cassandra versions prior to 3.0.0, this method always returns <code>null</code>. |
| * </p> |
| * @type {Object} |
| */ |
| this.extensions = null; |
| /** |
| * When compression is enabled, this option defines the probability |
| * with which checksums for compressed blocks are checked during reads. |
| * The default value for this options is 1.0 (always check). |
| * <p> |
| * For Apache Cassandra versions prior to 3.0.0, this method always returns <code>null</code>. |
| * </p> |
| * @type {Number|null} |
| */ |
| this.crcCheckChance = null; |
| /** |
| * Whether the populate I/O cache on flush is set on this table. |
| * @type {Boolean} |
| */ |
| this.populateCacheOnFlush = false; |
| /** |
| * Returns the default TTL for this table. |
| * @type {Number} |
| */ |
| this.defaultTtl = 0; |
| /** |
| * * Returns the speculative retry option for this table. |
| * @type {String} |
| */ |
| this.speculativeRetry = 'NONE'; |
| /** |
| * Returns the minimum index interval option for this table. |
| * <p> |
| * Note: this option is available in Apache Cassandra 2.1 and above, and will return <code>null</code> for |
| * earlier versions. |
| * </p> |
| * @type {Number|null} |
| */ |
| this.minIndexInterval = 128; |
| /** |
| * Returns the maximum index interval option for this table. |
| * <p> |
| * Note: this option is available in Apache Cassandra 2.1 and above, and will return <code>null</code> for |
| * earlier versions. |
| * </p> |
| * @type {Number|null} |
| */ |
| this.maxIndexInterval = 2048; |
| /** |
| * Array describing the table columns. |
| * @type {Array} |
| */ |
| this.columns = null; |
| /** |
| * An associative Array of columns by name. |
| * @type {Object} |
| */ |
| this.columnsByName = null; |
| /** |
| * Array describing the columns that are part of the partition key. |
| * @type {Array} |
| */ |
| this.partitionKeys = []; |
| /** |
| * Array describing the columns that form the clustering key. |
| * @type {Array} |
| */ |
| this.clusteringKeys = []; |
| /** |
| * Array describing the clustering order of the columns in the same order as the clusteringKeys. |
| * @type {Array} |
| */ |
| this.clusteringOrder = []; |
| /** |
| * An associative Array containing nodesync options for this table. |
| * <p> |
| * For DSE versions prior to 6.0.0, this method always returns {@code null}. If nodesync |
| * was not explicitly configured for this table this method will also return {@code null}. |
| * </p> |
| * @type {Object} |
| */ |
| this.nodesync = null; |
| } |
| |
| util.inherits(DataCollection, events.EventEmitter); |
| |
| module.exports = DataCollection; |