diff options
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.number.js')
-rw-r--r-- | www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.number.js | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.number.js b/www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.number.js new file mode 100644 index 00000000..484e6877 --- /dev/null +++ b/www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.number.js @@ -0,0 +1,100 @@ +/** + * SMW Number DataItem JavaScript representation + * + * @see SMW\DINumber + * + * @since 1.9 + * + * @file + * @ingroup SMW + * + * @licence GNU GPL v2 or later + * @author mwjames + */ +( function( $, mw, smw ) { + 'use strict'; + + /** + * Inheritance class for the smw.dataItem constructor + * + * @since 1.9 + * + * @class + * @abstract + */ + smw.dataItem = smw.dataItem || {}; + + /** + * Number constructor + * + * @since 1.9 + * + * @param {number} + * @return {this} + */ + var number = function ( number ) { + this.number = number !== '' ? number : null; + + return this; + }; + + /** + * Class constructor + * + * @since 1.9 + * + * @class + * @constructor + * @extends smw.dataItem + */ + smw.dataItem.number = function( value ) { + if ( $.type( value ) === 'number' ) { + this.constructor( value ); + } else { + throw new Error( 'smw.dataItem.number: invoked value must be a number but is of type ' + $.type( value ) ); + } + }; + + /* Public methods */ + + smw.dataItem.number.prototype = { + + constructor: number, + + /** + * Returns type + * + * @since 1.9 + * + * @return {string} + */ + getDIType: function() { + return '_num'; + }, + + /** + * Returns a number together with the number constructor functions + * + * @since 1.9 + * + * @return {number} + */ + getNumber: function() { + return Number( this.number ); + }, + + /** + * Returns a plain value representation + * + * @since 1.9 + * + * @return {string} + */ + getValue: function() { + return this.number; + } + }; + + // Alias + +} )( jQuery, mediaWiki, semanticMediaWiki );
\ No newline at end of file |