diff options
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.text.js')
-rw-r--r-- | www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.text.js | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.text.js b/www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.text.js new file mode 100644 index 00000000..51c92eb4 --- /dev/null +++ b/www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.text.js @@ -0,0 +1,104 @@ +/** + * SMW Text DataItem JavaScript representation + * + * @see SMW\DIString, SMW\DIBlob + * + * A string is a text representation only limited by its length. + * + * @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 {string} + * @param {string} + * @return {this} + */ + var text = function ( text, type ) { + this.text = text !== '' ? text : null; + + // If the type is not specified we assume it has to be '_txt' + this.type = type !== '' && type !== undefined ? type : '_txt'; + + return this; + }; + + /** + * Class constructor + * + * @since 1.9 + * + * @class + * @constructor + * @extends smw.dataItem + */ + smw.dataItem.text = function( text, type ) { + if ( $.type( text ) === 'string' ) { + this.constructor( text, type ); + } else { + throw new Error( 'smw.dataItem.text: invoked text must be a string but is of type ' + $.type( text ) ); + } + }; + + /* Public methods */ + + var fn = { + + constructor: text, + + /** + * Returns type + * + * Flexible in what to return as type as it could be either '_str' or + * '_txt' but the methods are the same therefore there is no need for + * an extra dataItem representing a string + * + * @since 1.9 + * + * @return {string} + */ + getDIType: function() { + return this.type; + }, + + /** + * Returns a plain text representation + * + * @since 1.9 + * + * @return {string} + */ + getText: function() { + return this.text; + } + }; + + // Alias + fn.getValue = fn.getText; + fn.getString = fn.getText; + + // Assign methods + smw.dataItem.text.prototype = fn; + +} )( jQuery, mediaWiki, semanticMediaWiki );
\ No newline at end of file |