mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-11-29 16:44:51 +00:00
317a404ece
It now allows you to specify which attributes to preserve in various ways rather than just setting true or false. Removed unused factory methods that exposed the old value. Change-Id: I914164adcf1f0e48fa3fa85277e68c72dbad393e
57 lines
1.3 KiB
JavaScript
57 lines
1.3 KiB
JavaScript
/*!
|
|
* VisualEditor DataModel MetaItemFactory class.
|
|
*
|
|
* @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
|
|
* @license The MIT License (MIT); see LICENSE.txt
|
|
*/
|
|
|
|
/**
|
|
* DataModel meta item factory.
|
|
*
|
|
* @class
|
|
* @extends ve.NamedClassFactory
|
|
* @constructor
|
|
*/
|
|
ve.dm.MetaItemFactory = function VeDmMetaItemFactory() {
|
|
// Parent constructor
|
|
ve.NamedClassFactory.call( this );
|
|
};
|
|
|
|
/* Inheritance */
|
|
|
|
ve.inheritClass( ve.dm.MetaItemFactory, ve.NamedClassFactory );
|
|
|
|
/* Methods */
|
|
|
|
/**
|
|
* Get the group a given item type belongs to.
|
|
*
|
|
* @method
|
|
* @param {string} type Meta item type
|
|
* @returns {string} Group
|
|
* @throws {Error} Unknown item type
|
|
*/
|
|
ve.dm.MetaItemFactory.prototype.getGroup = function ( type ) {
|
|
if ( type in this.registry ) {
|
|
return this.registry[type].static.group;
|
|
}
|
|
throw new Error( 'Unknown item type: ' + type );
|
|
};
|
|
|
|
/**
|
|
* Create a new item from a metadata element
|
|
* @param {Object} element Metadata element
|
|
* @returns {ve.dm.MetaItem} MetaItem constructed from element
|
|
* @throws {Error} Element must have a .type property
|
|
*/
|
|
ve.dm.MetaItemFactory.prototype.createFromElement = function ( element ) {
|
|
if ( element && element.type ) {
|
|
return this.create( element.type, element );
|
|
}
|
|
throw new Error( 'Element must have a .type property' );
|
|
};
|
|
|
|
/* Initialization */
|
|
|
|
ve.dm.metaItemFactory = new ve.dm.MetaItemFactory();
|