]> git.pond.sub.org Git - eow/blobdiff - static/dojo-release-1.1.1/dojox/uuid/Uuid.js
add Dojo 1.1.1
[eow] / static / dojo-release-1.1.1 / dojox / uuid / Uuid.js
diff --git a/static/dojo-release-1.1.1/dojox/uuid/Uuid.js b/static/dojo-release-1.1.1/dojox/uuid/Uuid.js
new file mode 100644 (file)
index 0000000..213ecd1
--- /dev/null
@@ -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;
+       }
+};
+
+}