All files / src/ce ve.ce.AnnotationFactory.js

100% Statements 13/13
100% Branches 4/4
100% Functions 3/3
100% Lines 13/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57                          1x   2x         1x                     1x 2x 2x 1x   1x                 1x 26x 25x   1x           1x  
/*!
 * VisualEditor ContentEditable AnnotationFactory class.
 *
 * @copyright See AUTHORS.txt
 */
 
/**
 * ContentEditable annotation factory.
 *
 * @class
 * @extends OO.Factory
 * @constructor
 */
ve.ce.AnnotationFactory = function VeCeAnnotationFactory() {
	// Parent constructor
	OO.Factory.call( this );
};
 
/* Inheritance */
 
OO.inheritClass( ve.ce.AnnotationFactory, OO.Factory );
 
/* Methods */
 
/**
 * Get a plain text description of an annotation model.
 *
 * @param {ve.dm.Annotation} annotation Annotation to describe
 * @return {string} Description of the annotation
 * @throws {Error} Unknown annotation type
 */
ve.ce.AnnotationFactory.prototype.getDescription = function ( annotation ) {
	const type = annotation.constructor.static.name;
	if ( Object.prototype.hasOwnProperty.call( this.registry, type ) ) {
		return this.registry[ type ].static.getDescription( annotation );
	}
	throw new Error( 'Unknown annotation type: ' + type );
};
 
/**
 * Check if an annotation can be active
 *
 * @param {string} type Annotation type
 * @return {boolean}
 */
ve.ce.AnnotationFactory.prototype.canAnnotationBeActive = function ( type ) {
	if ( Object.prototype.hasOwnProperty.call( this.registry, type ) ) {
		return this.registry[ type ].static.canBeActive;
	}
	throw new Error( 'Unknown annotation type: ' + type );
};
 
/* Initialization */
 
// TODO: Move instantiation to a different file
ve.ce.annotationFactory = new ve.ce.AnnotationFactory();