Blame | Last modification | View Log | RSS feed
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; // integerif (uuidStringOne < uuidStringTwo) return -1; // integerreturn 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 Datecase "date":case Date:// Return a JavaScript Date object.if (!this._timestampAsDate) {this._timestampAsDate = dojox.uuid.getTimestamp(this, Date);}return this._timestampAsDate; // Datebreak;default:// we got passed something other than a valid returnTypedojox.uuid.assert(false, "The getTimestamp() method dojox.uuid.Uuid was passed a bogus returnType: " + returnType);break;}};}