summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/SemanticMediaWiki/res/smw/data/ext.smw.dataItem.text.js
diff options
context:
space:
mode:
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.js104
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