dojox/uuid/_base.js

  • Provides:

    • dojox.uuid._base
  • dojox.uuid.version

    • type
      Object
    • summary
  • dojox.uuid.version.UNKNOWN

    • summary
  • dojox.uuid.version.TIME_BASED

    • summary
  • dojox.uuid.version.DCE_SECURITY

    • summary
  • dojox.uuid.version.NAME_BASED_MD5

    • summary
  • dojox.uuid.version.RANDOM

    • summary
  • dojox.uuid.version.NAME_BASED_SHA1

    • summary
  • dojox.uuid.variant

    • type
      Object
    • summary
  • dojox.uuid.variant.NCS

    • summary
  • dojox.uuid.variant.DCE

    • summary
  • dojox.uuid.variant.MICROSOFT

    • summary
  • dojox.uuid.variant.UNKNOWN

    • summary
  • dojox.uuid.assert

    • type
      Function
    • parameters:
      • booleanValue: (typeof Boolean)
        Must be true for the assertion to succeed.
      • message: (typeof String)
        A string describing the assertion.
        throws: Throws an Error if 'booleanValue' is false.
    • source: [view]
       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);
       }
    • 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.
  • dojox.uuid.generateNilUuid

    • type
      Function
    • source: [view]
       return dojox.uuid.NIL_UUID; // String
    • 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();
    • returns
      String
  • dojox.uuid.isValid

    • type
      Function
    • parameters:
      • uuidString: (typeof String)
    • source: [view]
       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
    • summary
      Returns true if the UUID was initialized with a valid value.
    • returns
      boolean
  • dojox.uuid.getVariant

    • type
      Function
    • parameters:
      • uuidString: (typeof String)
    • source: [view]
       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
    • summary
      Returns a variant code that indicates what type of UUID this is.
      Returns one of the enumerated dojox.uuid.variant values.
    • returns
      dojox.uuid.variant
    • 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)
  • dojox.uuid.getVersion

    • type
      Function
    • parameters:
      • uuidString: (typeof String)
    • source: [view]
       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
    • summary
      Returns a version number that indicates what type of UUID this is.
      Returns one of the enumerated dojox.uuid.version values.
    • exceptions
      Throws an Error if this is not a DCE Variant UUID.
    • returns
      dojox.uuid.version
    • example
      var version = dojox.uuid.getVersion("b4308fb0-86cd-11da-a72b-0800200c9a66");
      dojox.uuid.assert(version == dojox.uuid.version.TIME_BASED);
  • dojox.uuid.getNode

    • type
      Function
    • parameters:
      • uuidString: (typeof String)
    • source: [view]
       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")
    • summary
      If this is a version 1 UUID (a time-based UUID), getNode() returns a
      12-character string with the &quot;node&quot; or &quot;pseudonode&quot; portion of the UUID,
      which is the rightmost 12 characters.
    • exceptions
      Throws an Error if this is not a version 1 UUID.
    • returns
      String (a 12-character string, which will look something like "917bf397618a")
  • dojox.uuid.getTimestamp

    • type
      Function
    • parameters:
      • uuidString: (typeof String)
      • returnType: (typeof String)
        Any of these five values: &quot;string&quot;, String, &quot;hex&quot;, &quot;date&quot;, Date
    • source: [view]
       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;
       }
    • 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.
    • return_summary
      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.
    • returns
      String (e.g. "Mon, 16 Jan 2006 20:21:41 GMT")|String (e.g. "1da86cdb4308fb0")|no returnType was specified, so default to Date|Date
  • dojox.uuid.NIL_UUID

    • summary
  • dojox.uuid._base

    • type
      Object
    • summary
  • dojox.uuid

    • type
      Object
    • summary
  • dojox

    • type
      Object
    • summary