diff options
Diffstat (limited to 'includes/js/dojox/uuid/_base.js')
-rw-r--r-- | includes/js/dojox/uuid/_base.js | 245 |
1 files changed, 0 insertions, 245 deletions
diff --git a/includes/js/dojox/uuid/_base.js b/includes/js/dojox/uuid/_base.js deleted file mode 100644 index b65e5da..0000000 --- a/includes/js/dojox/uuid/_base.js +++ /dev/null @@ -1,245 +0,0 @@ -if(!dojo._hasResource["dojox.uuid._base"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. -dojo._hasResource["dojox.uuid._base"] = true; -dojo.provide("dojox.uuid._base"); - -// Public constants: -dojox.uuid.NIL_UUID = "00000000-0000-0000-0000-000000000000"; -dojox.uuid.version = { - // Enumeration for the different UUID versions. - UNKNOWN: 0, - TIME_BASED: 1, - DCE_SECURITY: 2, - NAME_BASED_MD5: 3, - RANDOM: 4, - NAME_BASED_SHA1: 5 }; -dojox.uuid.variant = { - // Enumeration for the different UUID variants. - NCS: "0", - DCE: "10", - MICROSOFT: "110", - UNKNOWN: "111" }; - -dojox.uuid.assert = function(/*Boolean*/ booleanValue, /*String?*/ message){ - // summary: - // Throws an exception if the assertion fails. - // description: - // If the asserted condition is true, this method does nothing. If the - // condition is false, we throw an error with a error message. - // booleanValue: Must be true for the assertion to succeed. - // message: A string describing the assertion. - // throws: Throws an Error if 'booleanValue' is false. - if(!booleanValue){ - if(!message){ - message = "An assert statement failed.\n" + - "The method dojox.uuid.assert() was called with a 'false' value.\n"; - } - throw new Error(message); - } -}; - -dojox.uuid.generateNilUuid = function(){ - // summary: - // This function returns the Nil UUID: "00000000-0000-0000-0000-000000000000". - // description: - // The Nil UUID is described in section 4.1.7 of - // RFC 4122: http://tools.ietf.org/html/rfc4122#section-4.1.7 - // examples: - // var string = dojox.uuid.generateNilUuid(); - return dojox.uuid.NIL_UUID;; // String -}; - -dojox.uuid.isValid = function(/*String*/ uuidString){ - // summary: - // Returns true if the UUID was initialized with a valid value. - uuidString = uuidString.toString(); - var valid = (dojo.isString(uuidString) && - (uuidString.length == 36) && - (uuidString == uuidString.toLowerCase())); - if(valid){ - var arrayOfParts = uuidString.split("-"); - valid = ((arrayOfParts.length == 5) && - (arrayOfParts[0].length == 8) && - (arrayOfParts[1].length == 4) && - (arrayOfParts[2].length == 4) && - (arrayOfParts[3].length == 4) && - (arrayOfParts[4].length == 12)); - var HEX_RADIX = 16; - for (var i in arrayOfParts) { - var part = arrayOfParts[i]; - var integer = parseInt(part, HEX_RADIX); - valid = valid && isFinite(integer); - } - } - return valid; // boolean -}; - -dojox.uuid.getVariant = function(/*String*/ uuidString){ - // summary: - // Returns a variant code that indicates what type of UUID this is. - // Returns one of the enumerated dojox.uuid.variant values. - // example: - // var variant = dojox.uuid.getVariant("3b12f1df-5232-4804-897e-917bf397618a"); - // dojox.uuid.assert(variant == dojox.uuid.variant.DCE); - // example: - // "3b12f1df-5232-4804-897e-917bf397618a" - // ^ - // | - // (variant "10__" == DCE) - if(!dojox.uuid._ourVariantLookupTable){ - var variant = dojox.uuid.variant; - var lookupTable = []; - - lookupTable[0x0] = variant.NCS; // 0000 - lookupTable[0x1] = variant.NCS; // 0001 - lookupTable[0x2] = variant.NCS; // 0010 - lookupTable[0x3] = variant.NCS; // 0011 - - lookupTable[0x4] = variant.NCS; // 0100 - lookupTable[0x5] = variant.NCS; // 0101 - lookupTable[0x6] = variant.NCS; // 0110 - lookupTable[0x7] = variant.NCS; // 0111 - - lookupTable[0x8] = variant.DCE; // 1000 - lookupTable[0x9] = variant.DCE; // 1001 - lookupTable[0xA] = variant.DCE; // 1010 - lookupTable[0xB] = variant.DCE; // 1011 - - lookupTable[0xC] = variant.MICROSOFT; // 1100 - lookupTable[0xD] = variant.MICROSOFT; // 1101 - lookupTable[0xE] = variant.UNKNOWN; // 1110 - lookupTable[0xF] = variant.UNKNOWN; // 1111 - - dojox.uuid._ourVariantLookupTable = lookupTable; - } - - uuidString = uuidString.toString(); - var variantCharacter = uuidString.charAt(19); - var HEX_RADIX = 16; - var variantNumber = parseInt(variantCharacter, HEX_RADIX); - dojox.uuid.assert((variantNumber >= 0) && (variantNumber <= 16)); - return dojox.uuid._ourVariantLookupTable[variantNumber]; // dojox.uuid.variant -}; - -dojox.uuid.getVersion = function(/*String*/ uuidString){ - // summary: - // Returns a version number that indicates what type of UUID this is. - // Returns one of the enumerated dojox.uuid.version values. - // example: - // var version = dojox.uuid.getVersion("b4308fb0-86cd-11da-a72b-0800200c9a66"); - // dojox.uuid.assert(version == dojox.uuid.version.TIME_BASED); - // exceptions: - // Throws an Error if this is not a DCE Variant UUID. - var errorMessage = "dojox.uuid.getVersion() was not passed a DCE Variant UUID."; - dojox.uuid.assert(dojox.uuid.getVariant(uuidString) == dojox.uuid.variant.DCE, errorMessage); - uuidString = uuidString.toString(); - - // "b4308fb0-86cd-11da-a72b-0800200c9a66" - // ^ - // | - // (version 1 == TIME_BASED) - var versionCharacter = uuidString.charAt(14); - var HEX_RADIX = 16; - var versionNumber = parseInt(versionCharacter, HEX_RADIX); - return versionNumber; // dojox.uuid.version -}; - -dojox.uuid.getNode = function(/*String*/ uuidString){ - // 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. - var errorMessage = "dojox.uuid.getNode() was not passed a TIME_BASED UUID."; - dojox.uuid.assert(dojox.uuid.getVersion(uuidString) == dojox.uuid.version.TIME_BASED, errorMessage); - - uuidString = uuidString.toString(); - var arrayOfStrings = uuidString.split('-'); - var nodeString = arrayOfStrings[4]; - return nodeString; // String (a 12-character string, which will look something like "917bf397618a") -}; - -dojox.uuid.getTimestamp = function(/*String*/ uuidString, /*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 uuidString = "b4308fb0-86cd-11da-a72b-0800200c9a66"; - // var date, string, hexString; - // date = dojox.uuid.getTimestamp(uuidString); // returns a JavaScript Date - // date = dojox.uuid.getTimestamp(uuidString, Date); // - // string = dojox.uuid.getTimestamp(uuidString, String); // "Mon, 16 Jan 2006 20:21:41 GMT" - // hexString = dojox.uuid.getTimestamp(uuidString, "hex"); // "1da86cdb4308fb0" - // exceptions: - // Throws an Error if this is not a version 1 UUID. - var errorMessage = "dojox.uuid.getTimestamp() was not passed a TIME_BASED UUID."; - dojox.uuid.assert(dojox.uuid.getVersion(uuidString) == dojox.uuid.version.TIME_BASED, errorMessage); - - uuidString = uuidString.toString(); - if(!returnType){returnType = null}; - switch(returnType){ - case "string": - case String: - return dojox.uuid.getTimestamp(uuidString, 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. - var arrayOfStrings = uuidString.split('-'); - var hexTimeLow = arrayOfStrings[0]; - var hexTimeMid = arrayOfStrings[1]; - var hexTimeHigh = arrayOfStrings[2]; - - // Chop off the leading "1" character, which is the UUID - // version number for time-based UUIDs. - hexTimeHigh = hexTimeHigh.slice(1); - - var timestampAsHexString = hexTimeHigh + hexTimeMid + hexTimeLow; - dojox.uuid.assert(timestampAsHexString.length == 15); - return 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. - var GREGORIAN_CHANGE_OFFSET_IN_HOURS = 3394248; - var HEX_RADIX = 16; - - var arrayOfParts = uuidString.split('-'); - var timeLow = parseInt(arrayOfParts[0], HEX_RADIX); - var timeMid = parseInt(arrayOfParts[1], HEX_RADIX); - var timeHigh = parseInt(arrayOfParts[2], HEX_RADIX); - var hundredNanosecondIntervalsSince1582 = timeHigh & 0x0FFF; - hundredNanosecondIntervalsSince1582 <<= 16; - hundredNanosecondIntervalsSince1582 += timeMid; - // What we really want to do next is shift left 32 bits, but the - // result will be too big to fit in an int, so we'll multiply by 2^32, - // and the result will be a floating point approximation. - hundredNanosecondIntervalsSince1582 *= 0x100000000; - hundredNanosecondIntervalsSince1582 += timeLow; - var millisecondsSince1582 = hundredNanosecondIntervalsSince1582 / 10000; - - // Again, this will be a floating point approximation. - // We can make things exact later if we need to. - var secondsPerHour = 60 * 60; - var hoursBetween1582and1970 = GREGORIAN_CHANGE_OFFSET_IN_HOURS; - var secondsBetween1582and1970 = hoursBetween1582and1970 * secondsPerHour; - var millisecondsBetween1582and1970 = secondsBetween1582and1970 * 1000; - var millisecondsSince1970 = millisecondsSince1582 - millisecondsBetween1582and1970; - - var timestampAsDate = new Date(millisecondsSince1970); - return timestampAsDate; // Date - break; - default: - // we got passed something other than a valid returnType - dojox.uuid.assert(false, "dojox.uuid.getTimestamp was not passed a valid returnType: " + returnType); - break; - } -}; - -} |