mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-12-01 17:36:35 +00:00
6c231be8ab
Move containsElementData to FlatLinearData next to isElementData. Move tests for both methods to FlatLinearData.test.js. Change-Id: I07a192f5925da7cc763efe5e41427f1f47d85850
87 lines
2.3 KiB
JavaScript
87 lines
2.3 KiB
JavaScript
/*!
|
|
* VisualEditor FlatLinearData classes.
|
|
*
|
|
* Class containing Flat linear data and an index-value store.
|
|
*
|
|
* @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
|
|
* @license The MIT License (MIT); see LICENSE.txt
|
|
*/
|
|
|
|
/**
|
|
* Flat linear data storage
|
|
*
|
|
* @class
|
|
* @extends ve.dm.LinearData
|
|
* @constructor
|
|
* @param {ve.dm.IndexValueStore} store Index-value store
|
|
* @param {Array} [data] Linear data
|
|
*/
|
|
ve.dm.FlatLinearData = function VeDmFlatLinearData( store, data ) {
|
|
ve.dm.LinearData.call( this, store, data );
|
|
};
|
|
|
|
/* Inheritance */
|
|
|
|
OO.inheritClass( ve.dm.FlatLinearData, ve.dm.LinearData );
|
|
|
|
/* Methods */
|
|
|
|
/**
|
|
* Get the type of the element at a specified offset
|
|
* @method
|
|
* @param {number} offset Data offset
|
|
* @returns {string} Type of the element
|
|
*/
|
|
ve.dm.FlatLinearData.prototype.getType = function ( offset ) {
|
|
return ve.dm.LinearData.static.getType( this.getData( offset ) );
|
|
};
|
|
|
|
/**
|
|
* Check if data at a given offset is an element.
|
|
* @method
|
|
* @param {number} offset Data offset
|
|
* @returns {boolean} Data at offset is an element
|
|
*/
|
|
ve.dm.FlatLinearData.prototype.isElementData = function ( offset ) {
|
|
return ve.dm.LinearData.static.isElementData( this.getData( offset ) );
|
|
};
|
|
|
|
/**
|
|
* Check for elements in data.
|
|
*
|
|
* This method assumes that any value that has a type property that's a string is an element object.
|
|
* Elements are discovered by iterating through the entire data array (backwards).
|
|
*
|
|
* @method
|
|
* @returns {boolean} At least one elements exists in data
|
|
*/
|
|
ve.dm.FlatLinearData.prototype.containsElementData = function () {
|
|
var i = this.getLength();
|
|
while ( i-- ) {
|
|
if ( this.isElementData( i ) ) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
};
|
|
|
|
/**
|
|
* Checks if data at a given offset is an open element.
|
|
* @method
|
|
* @param {number} offset Data offset
|
|
* @returns {boolean} Data at offset is an open element
|
|
*/
|
|
ve.dm.FlatLinearData.prototype.isOpenElementData = function ( offset ) {
|
|
return ve.dm.LinearData.static.isOpenElementData( this.getData( offset ) );
|
|
};
|
|
|
|
/**
|
|
* Checks if data at a given offset is a close element.
|
|
* @method
|
|
* @param {number} offset Data offset
|
|
* @returns {boolean} Data at offset is a close element
|
|
*/
|
|
ve.dm.FlatLinearData.prototype.isCloseElementData = function ( offset ) {
|
|
return ve.dm.LinearData.static.isCloseElementData( this.getData( offset ) );
|
|
};
|