jenkins-bot has submitted this change and it was merged.
Change subject: Convert AnnotationFactory and MetaItemFactory to
NamedClassFactories
......................................................................
Convert AnnotationFactory and MetaItemFactory to NamedClassFactories
Change-Id: Ic6e3a336050a335c88ef41735c0f4e470c5b75b6
---
M modules/ve/dm/ve.dm.AnnotationFactory.js
M modules/ve/dm/ve.dm.MetaItemFactory.js
M modules/ve/dm/ve.dm.ModelRegistry.js
3 files changed, 14 insertions(+), 9 deletions(-)
Approvals:
Esanders: Looks good to me, approved
jenkins-bot: Verified
diff --git a/modules/ve/dm/ve.dm.AnnotationFactory.js
b/modules/ve/dm/ve.dm.AnnotationFactory.js
index 9918065..b035fda 100644
--- a/modules/ve/dm/ve.dm.AnnotationFactory.js
+++ b/modules/ve/dm/ve.dm.AnnotationFactory.js
@@ -9,17 +9,17 @@
* DataModel annotation factory.
*
* @class
- * @extends ve.Factory
+ * @extends ve.NamedClassFactory
* @constructor
*/
ve.dm.AnnotationFactory = function VeDmAnnotationFactory() {
// Parent constructor
- ve.Factory.call( this );
+ ve.NamedClassFactory.call( this );
};
/* Inheritance */
-ve.inheritClass( ve.dm.AnnotationFactory, ve.Factory );
+ve.inheritClass( ve.dm.AnnotationFactory, ve.NamedClassFactory );
/* Initialization */
diff --git a/modules/ve/dm/ve.dm.MetaItemFactory.js
b/modules/ve/dm/ve.dm.MetaItemFactory.js
index 1ebc773..04aae66 100644
--- a/modules/ve/dm/ve.dm.MetaItemFactory.js
+++ b/modules/ve/dm/ve.dm.MetaItemFactory.js
@@ -9,17 +9,17 @@
* DataModel meta item factory.
*
* @class
- * @extends ve.Factory
+ * @extends ve.NamedClassFactory
* @constructor
*/
ve.dm.MetaItemFactory = function VeDmMetaItemFactory() {
// Parent constructor
- ve.Factory.call( this );
+ ve.NamedClassFactory.call( this );
};
/* Inheritance */
-ve.inheritClass( ve.dm.MetaItemFactory, ve.Factory );
+ve.inheritClass( ve.dm.MetaItemFactory, ve.NamedClassFactory );
/* Methods */
diff --git a/modules/ve/dm/ve.dm.ModelRegistry.js
b/modules/ve/dm/ve.dm.ModelRegistry.js
index cb6c753..6f7f453 100644
--- a/modules/ve/dm/ve.dm.ModelRegistry.js
+++ b/modules/ve/dm/ve.dm.ModelRegistry.js
@@ -71,22 +71,27 @@
* Register a model type.
* @param {string} name Symbolic name for the model
* @param {ve.dm.Model} constructor Subclass of ve.dm.Model
+ * @throws Models must be subclasses of ve.dm.Model
+ * @throws No factory associated with this ve.dm.Model subclass
*/
ve.dm.ModelRegistry.prototype.register = function ( constructor ) {
var i, j, tags, types, name = constructor.static &&
constructor.static.name;
if ( typeof name !== 'string' || name === '' ) {
throw new Error( 'Model names must be strings and must not be
empty' );
}
+ if ( !( constructor.prototype instanceof ve.dm.Model ) ) {
+ throw new Error( 'Models must be subclasses of ve.dm.Model' );
+ }
// Register the model with the right factory
if ( constructor.prototype instanceof ve.dm.Annotation ) {
- ve.dm.annotationFactory.register( name, constructor );
+ ve.dm.annotationFactory.register( constructor );
} else if ( constructor.prototype instanceof ve.dm.Node ) {
ve.dm.nodeFactory.register( constructor );
} else if ( constructor.prototype instanceof ve.dm.MetaItem ) {
- ve.dm.metaItemFactory.register( name, constructor );
+ ve.dm.metaItemFactory.register( constructor );
} else {
- throw new Error( 'Models must be subclasses of
ve.dm.Annotation, ve.dm.Node or ve.dm.MetaItem' );
+ throw new Error( 'No factory associated with this ve.dm.Model
subclass' );
}
// Call parent implementation
ve.Registry.prototype.register.call( this, name, constructor );
--
To view, visit https://gerrit.wikimedia.org/r/57244
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ic6e3a336050a335c88ef41735c0f4e470c5b75b6
Gerrit-PatchSet: 8
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Catrope <[email protected]>
Gerrit-Reviewer: Catrope <[email protected]>
Gerrit-Reviewer: Esanders <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits