mediawiki-extensions-Visual.../modules/ve-mw/dm/models/ve.dm.MWTransclusionPartModel.js
Thiemo Kreuz 454dc53126 Give getUniquePartId method a better name
It's not a getter, but a generator. I found the name confusing.
Getters typically don't return something different every time you
call them.

Change-Id: I6eeab8b6a8644e430003f6e1ad77ab4b28e0d8c9
2021-12-22 13:03:01 +01:00

98 lines
2.6 KiB
JavaScript

/*!
* VisualEditor DataModel MWTransclusionPartModel class.
*
* @copyright 2011-2020 VisualEditor Team and others; see AUTHORS.txt
* @license The MIT License (MIT); see LICENSE.txt
*/
/**
* Abstract base class for items in a {@see ve.dm.MWTransclusionModel}. Holds a back-reference to
* it's parent. Currently used for:
* - {@see ve.dm.MWTemplateModel} for a single template invocation.
* - {@see ve.dm.MWTemplatePlaceholderModel} while searching for a template name to be added.
* - {@see ve.dm.MWTransclusionContentModel} for a raw wikitext snippet.
*
* @abstract
* @class
* @mixins OO.EventEmitter
*
* @constructor
* @param {ve.dm.MWTransclusionModel} transclusion
*/
ve.dm.MWTransclusionPartModel = function VeDmMWTransclusionPartModel( transclusion ) {
// Mixin constructors
OO.EventEmitter.call( this );
// Properties
this.transclusion = transclusion;
this.id = 'part_' + this.transclusion.nextUniquePartId();
};
/* Inheritance */
OO.mixinClass( ve.dm.MWTransclusionPartModel, OO.EventEmitter );
/* Events */
/**
* Emitted when anything changed in the content the part represents, e.g. a parameter was added to a
* template, or a value edited.
*
* @event change
*/
/* Methods */
/**
* Get transclusion part is in.
*
* @return {ve.dm.MWTransclusionModel} Transclusion
*/
ve.dm.MWTransclusionPartModel.prototype.getTransclusion = function () {
return this.transclusion;
};
/**
* Get a unique part ID within the transclusion.
*
* @return {string} Unique ID
*/
ve.dm.MWTransclusionPartModel.prototype.getId = function () {
return this.id;
};
/**
* Remove part from transclusion.
*/
ve.dm.MWTransclusionPartModel.prototype.remove = function () {
this.transclusion.removePart( this );
};
/**
* Create a serialized representation of this part. Contains all information needed to recreate the
* original wikitext, including extra whitespace. Used in
* {@see ve.dm.MWTransclusionModel.getPlainObject}. The corresponding deserializer is in
* {@see ve.dm.MWTransclusionNode.static.getWikitext}.
*
* @return {Object|string|undefined} Serialized representation, raw wikitext, or undefined if empty
*/
ve.dm.MWTransclusionPartModel.prototype.serialize = function () {
return undefined;
};
/**
* Add all non-existing required and suggested parameters, if any.
*
* @return {number} Number of parameters added
*/
ve.dm.MWTransclusionPartModel.prototype.addPromptedParameters = function () {
return 0;
};
/**
* @return {boolean} True if there is meaningful user input that was not e.g. auto-generated
*/
ve.dm.MWTransclusionPartModel.prototype.containsValuableData = function () {
return false;
};