mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-12-01 17:36:35 +00:00
44b1fdebe4
Previously we returned ElementLinearData from the converter, then stripped out the MetaLinearData. This meant that before processing the ElementLinearData from the converter actually contained metadata which is confusing. The new document constructor stores the converter results in a FlatLinearData object and simultaneously populates element and meta data stores. Also in this commit I have moved various methods from ElementLinearData to FlatLinearData, from which ElementLinearData inherits. Change-Id: I64561bde2c31d8f703c13ac7b0a0c5f7ade9f3d4
68 lines
1.8 KiB
JavaScript
68 lines
1.8 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 */
|
|
|
|
ve.inheritClass( ve.dm.FlatLinearData, ve.dm.LinearData );
|
|
|
|
/* Methods */
|
|
|
|
/**
|
|
* Get the type of the element at a specified offset
|
|
* @method
|
|
* @param {number} offset Document 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 Document 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 ) );
|
|
};
|
|
|
|
/**
|
|
* Checks if data at a given offset is an open element.
|
|
* @method
|
|
* @param {number} offset Document 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 Document 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 ) );
|
|
};
|