mediawiki-extensions-Visual.../modules/ve/dm/lineardata/ve.dm.FlatLinearData.js
Ed Sanders 44b1fdebe4 Use FlatLinearData for storing converter results
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
2013-10-06 20:27:32 +01:00

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 ) );
};