From e44a7e37b6c7b5961adaffc62b9042b8d442938e Mon Sep 17 00:00:00 2001 From: mensonge Date: Thu, 13 Nov 2008 09:49:11 +0000 Subject: New feature: basic Ajax suggestion for tags and implementation of Dojo toolkit git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@151 b3834d28-1941-0410-a4f8-b48e95affb8f --- includes/js/dojox/uuid/Uuid.js | 200 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 includes/js/dojox/uuid/Uuid.js (limited to 'includes/js/dojox/uuid/Uuid.js') diff --git a/includes/js/dojox/uuid/Uuid.js b/includes/js/dojox/uuid/Uuid.js new file mode 100644 index 0000000..213ecd1 --- /dev/null +++ b/includes/js/dojox/uuid/Uuid.js @@ -0,0 +1,200 @@ +if(!dojo._hasResource["dojox.uuid.Uuid"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojox.uuid.Uuid"] = true; +dojo.provide("dojox.uuid.Uuid"); +dojo.require("dojox.uuid"); + +dojox.uuid.Uuid = function(/*String?*/ input){ + // summary: + // This is the constructor for the Uuid class. The Uuid class offers + // methods for inspecting existing UUIDs. + // input: A 36-character string that conforms to the UUID spec. + // examples: + // var uuid; + // uuid = new dojox.uuid.Uuid("3b12f1df-5232-4804-897e-917bf397618a"); + // uuid = new dojox.uuid.Uuid(); // "00000000-0000-0000-0000-000000000000" + // uuid = new dojox.uuid.Uuid(dojox.uuid.generateRandomUuid()); + // uuid = new dojox.uuid.Uuid(dojox.uuid.generateTimeBasedUuid()); + // dojox.uuid.Uuid.setGenerator(dojox.uuid.generateRandomUuid); + // uuid = new dojox.uuid.Uuid(); + // dojox.uuid.assert(!uuid.isEqual(dojox.uuid.NIL_UUID)); + this._uuidString = dojox.uuid.NIL_UUID; + if(input){ + dojox.uuid.assert(dojo.isString(input)); + this._uuidString = input.toLowerCase(); + dojox.uuid.assert(this.isValid()); + }else{ + var ourGenerator = dojox.uuid.Uuid.getGenerator(); + if(ourGenerator){ + this._uuidString = ourGenerator(); + dojox.uuid.assert(this.isValid()); + } + } +}; + +dojox.uuid.Uuid.compare = function(/*dojox.uuid.Uuid*/ uuidOne, /*dojox.uuid.Uuid*/ uuidTwo){ + // summary: + // Given two UUIDs to compare, this method returns 0, 1, or -1. + // description: + // This method is designed to be used by sorting routines, like the + // JavaScript built-in Array sort() method. This implementation is + // intended to match the sample implementation in IETF RFC 4122: + // http://www.ietf.org/rfc/rfc4122.txt + // uuidOne: Any object that has toString() method that returns a 36-character string that conforms to the UUID spec. + // uuidTwo: Any object that has toString() method that returns a 36-character string that conforms to the UUID spec. + + // examples: + // var uuid; + // var generator = dojox.uuid.TimeBasedGenerator; + // var a = new dojox.uuid.Uuid(generator); + // var b = new dojox.uuid.Uuid(generator); + // var c = new dojox.uuid.Uuid(generator); + // var array = new Array(a, b, c); + // array.sort(dojox.uuid.Uuid.compare); + var uuidStringOne = uuidOne.toString(); + var uuidStringTwo = uuidTwo.toString(); + if (uuidStringOne > uuidStringTwo) return 1; // integer + if (uuidStringOne < uuidStringTwo) return -1; // integer + return 0; // integer (either 0, 1, or -1) +}; + +dojox.uuid.Uuid.setGenerator = function(/*Function?*/ generator){ + // summary: + // Sets the default generator, which will be used by the + // "new dojox.uuid.Uuid()" constructor if no parameters + // are passed in. + // generator: A UUID generator function, such as dojox.uuid.generateTimeBasedUuid. + dojox.uuid.assert(!generator || dojo.isFunction(generator)); + dojox.uuid.Uuid._ourGenerator = generator; +}; + +dojox.uuid.Uuid.getGenerator = function(){ + // summary: + // Returns the default generator. See setGenerator(). + return dojox.uuid.Uuid._ourGenerator; // generator (A UUID generator, such as dojox.uuid.TimeBasedGenerator). +}; + +dojox.uuid.Uuid.prototype.toString = function(){ + // summary: + // This method returns a standard 36-character string representing + // the UUID, such as "3b12f1df-5232-4804-897e-917bf397618a". + return this._uuidString; // string +}; + +dojox.uuid.Uuid.prototype.compare = function(/*dojox.uuid.Uuid*/ otherUuid){ + // summary: + // Compares this UUID to another UUID, and returns 0, 1, or -1. + // description: + // This implementation is intended to match the sample implementation + // in IETF RFC 4122: http://www.ietf.org/rfc/rfc4122.txt + // otherUuid: Any object that has toString() method that returns a 36-character string that conforms to the UUID spec. + return dojox.uuid.Uuid.compare(this, otherUuid); // integer (either 0, 1, or -1) +}; + +dojox.uuid.Uuid.prototype.isEqual = function(/*dojox.uuid.Uuid*/ otherUuid){ + // summary: + // Returns true if this UUID is equal to the otherUuid, or false otherwise. + // otherUuid: Any object that has toString() method that returns a 36-character string that conforms to the UUID spec. + return (this.compare(otherUuid) == 0); // boolean +}; + +dojox.uuid.Uuid.prototype.isValid = function(){ + // summary: + // Returns true if the UUID was initialized with a valid value. + return dojox.uuid.isValid(this); +}; + +dojox.uuid.Uuid.prototype.getVariant = function(){ + // summary: + // Returns a variant code that indicates what type of UUID this is. + // Returns one of the enumerated dojox.uuid.variant values. + + // example: + // var uuid = new dojox.uuid.Uuid("3b12f1df-5232-4804-897e-917bf397618a"); + // var variant = uuid.getVariant(); + // dojox.uuid.assert(variant == dojox.uuid.variant.DCE); + // example: + // "3b12f1df-5232-4804-897e-917bf397618a" + // ^ + // | + // (variant "10__" == DCE) + return dojox.uuid.getVariant(this); +}; + +dojox.uuid.Uuid.prototype.getVersion = function(){ + // summary: + // Returns a version number that indicates what type of UUID this is. + // Returns one of the enumerated dojox.uuid.version values. + // example: + // var uuid = new dojox.uuid.Uuid("b4308fb0-86cd-11da-a72b-0800200c9a66"); + // var version = uuid.getVersion(); + // dojox.uuid.assert(version == dojox.uuid.version.TIME_BASED); + // exceptions: + // Throws an Error if this is not a DCE Variant UUID. + if(!this._versionNumber){ + this._versionNumber = dojox.uuid.getVersion(this); + } + return this._versionNumber; // dojox.uuid.version +}; + +dojox.uuid.Uuid.prototype.getNode = function(){ + // summary: + // If this is a version 1 UUID (a time-based UUID), getNode() returns a + // 12-character string with the "node" or "pseudonode" portion of the UUID, + // which is the rightmost 12 characters. + // exceptions: + // Throws an Error if this is not a version 1 UUID. + if (!this._nodeString) { + this._nodeString = dojox.uuid.getNode(this); + } + return this._nodeString; // String (a 12-character string, which will look something like "917bf397618a") +}; + +dojox.uuid.Uuid.prototype.getTimestamp = function(/*String?*/ returnType){ + // summary: + // If this is a version 1 UUID (a time-based UUID), this method returns + // the timestamp value encoded in the UUID. The caller can ask for the + // timestamp to be returned either as a JavaScript Date object or as a + // 15-character string of hex digits. + // returnType: Any of these five values: "string", String, "hex", "date", Date + // returns: + // Returns the timestamp value as a JavaScript Date object or a 15-character string of hex digits. + // examples: + // var uuid = new dojox.uuid.Uuid("b4308fb0-86cd-11da-a72b-0800200c9a66"); + // var date, string, hexString; + // date = uuid.getTimestamp(); // returns a JavaScript Date + // date = uuid.getTimestamp(Date); // + // string = uuid.getTimestamp(String); // "Mon, 16 Jan 2006 20:21:41 GMT" + // hexString = uuid.getTimestamp("hex"); // "1da86cdb4308fb0" + // exceptions: + // Throws an Error if this is not a version 1 UUID. + if(!returnType){returnType = null}; + switch(returnType){ + case "string": + case String: + return this.getTimestamp(Date).toUTCString(); // String (e.g. "Mon, 16 Jan 2006 20:21:41 GMT") + break; + case "hex": + // Return a 15-character string of hex digits containing the + // timestamp for this UUID, with the high-order bits first. + if (!this._timestampAsHexString) { + this._timestampAsHexString = dojox.uuid.getTimestamp(this, "hex"); + } + return this._timestampAsHexString; // String (e.g. "1da86cdb4308fb0") + break; + case null: // no returnType was specified, so default to Date + case "date": + case Date: + // Return a JavaScript Date object. + if (!this._timestampAsDate) { + this._timestampAsDate = dojox.uuid.getTimestamp(this, Date); + } + return this._timestampAsDate; // Date + break; + default: + // we got passed something other than a valid returnType + dojox.uuid.assert(false, "The getTimestamp() method dojox.uuid.Uuid was passed a bogus returnType: " + returnType); + break; + } +}; + +} -- cgit v1.2.3