root / trunk / web / dojo / dojox / uuid / _base.js @ 12
History | View | Annotate | Download (3.22 KB)
| 1 |
/*
|
|---|---|
| 2 |
Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
|
| 3 |
Available via Academic Free License >= 2.1 OR the modified BSD license.
|
| 4 |
see: http://dojotoolkit.org/license for details
|
| 5 |
*/
|
| 6 |
|
| 7 |
|
| 8 |
if(!dojo._hasResource["dojox.uuid._base"]){ |
| 9 |
dojo._hasResource["dojox.uuid._base"]=true; |
| 10 |
dojo.provide("dojox.uuid._base");
|
| 11 |
dojox.uuid.NIL_UUID="00000000-0000-0000-0000-000000000000";
|
| 12 |
dojox.uuid.version={UNKNOWN:0,TIME_BASED:1,DCE_SECURITY:2,NAME_BASED_MD5:3,RANDOM:4,NAME_BASED_SHA1:5};
|
| 13 |
dojox.uuid.variant={NCS:"0",DCE:"10",MICROSOFT:"110",UNKNOWN:"111"};
|
| 14 |
dojox.uuid.assert=function(_1,_2){ |
| 15 |
if(!_1){
|
| 16 |
if(!_2){
|
| 17 |
_2="An assert statement failed.\n"+"The method dojox.uuid.assert() was called with a 'false' value.\n"; |
| 18 |
} |
| 19 |
throw new Error(_2); |
| 20 |
} |
| 21 |
}; |
| 22 |
dojox.uuid.generateNilUuid=function(){ |
| 23 |
return dojox.uuid.NIL_UUID;
|
| 24 |
}; |
| 25 |
dojox.uuid.isValid=function(_3){ |
| 26 |
_3=_3.toString(); |
| 27 |
var _4=(dojo.isString(_3)&&(_3.length==36)&&(_3==_3.toLowerCase())); |
| 28 |
if(_4){
|
| 29 |
var _5=_3.split("-"); |
| 30 |
_4=((_5.length==5)&&(_5[0].length==8)&&(_5[1].length==4)&&(_5[2].length==4)&&(_5[3].length==4)&&(_5[4].length==12)); |
| 31 |
var _6=16; |
| 32 |
for(var i in _5){ |
| 33 |
var _7=_5[i];
|
| 34 |
var _8=parseInt(_7,_6);
|
| 35 |
_4=_4&&isFinite(_8); |
| 36 |
} |
| 37 |
} |
| 38 |
return _4;
|
| 39 |
}; |
| 40 |
dojox.uuid.getVariant=function(_9){ |
| 41 |
if(!dojox.uuid._ourVariantLookupTable){
|
| 42 |
var _a=dojox.uuid.variant;
|
| 43 |
var _b=[];
|
| 44 |
_b[0]=_a.NCS;
|
| 45 |
_b[1]=_a.NCS;
|
| 46 |
_b[2]=_a.NCS;
|
| 47 |
_b[3]=_a.NCS;
|
| 48 |
_b[4]=_a.NCS;
|
| 49 |
_b[5]=_a.NCS;
|
| 50 |
_b[6]=_a.NCS;
|
| 51 |
_b[7]=_a.NCS;
|
| 52 |
_b[8]=_a.DCE;
|
| 53 |
_b[9]=_a.DCE;
|
| 54 |
_b[10]=_a.DCE;
|
| 55 |
_b[11]=_a.DCE;
|
| 56 |
_b[12]=_a.MICROSOFT;
|
| 57 |
_b[13]=_a.MICROSOFT;
|
| 58 |
_b[14]=_a.UNKNOWN;
|
| 59 |
_b[15]=_a.UNKNOWN;
|
| 60 |
dojox.uuid._ourVariantLookupTable=_b; |
| 61 |
} |
| 62 |
_9=_9.toString(); |
| 63 |
var _c=_9.charAt(19); |
| 64 |
var _d=16; |
| 65 |
var _e=parseInt(_c,_d);
|
| 66 |
dojox.uuid.assert((_e>=0)&&(_e<=16)); |
| 67 |
return dojox.uuid._ourVariantLookupTable[_e];
|
| 68 |
}; |
| 69 |
dojox.uuid.getVersion=function(_f){ |
| 70 |
var _10="dojox.uuid.getVersion() was not passed a DCE Variant UUID."; |
| 71 |
dojox.uuid.assert(dojox.uuid.getVariant(_f)==dojox.uuid.variant.DCE,_10); |
| 72 |
_f=_f.toString(); |
| 73 |
var _11=_f.charAt(14); |
| 74 |
var _12=16; |
| 75 |
var _13=parseInt(_11,_12);
|
| 76 |
return _13;
|
| 77 |
}; |
| 78 |
dojox.uuid.getNode=function(_14){ |
| 79 |
var _15="dojox.uuid.getNode() was not passed a TIME_BASED UUID."; |
| 80 |
dojox.uuid.assert(dojox.uuid.getVersion(_14)==dojox.uuid.version.TIME_BASED,_15); |
| 81 |
_14=_14.toString(); |
| 82 |
var _16=_14.split("-"); |
| 83 |
var _17=_16[4]; |
| 84 |
return _17;
|
| 85 |
}; |
| 86 |
dojox.uuid.getTimestamp=function(_18,_19){ |
| 87 |
var _1a="dojox.uuid.getTimestamp() was not passed a TIME_BASED UUID."; |
| 88 |
dojox.uuid.assert(dojox.uuid.getVersion(_18)==dojox.uuid.version.TIME_BASED,_1a); |
| 89 |
_18=_18.toString(); |
| 90 |
if(!_19){
|
| 91 |
_19=null;
|
| 92 |
} |
| 93 |
switch(_19){
|
| 94 |
case "string": |
| 95 |
case String:
|
| 96 |
return dojox.uuid.getTimestamp(_18,Date).toUTCString();
|
| 97 |
break;
|
| 98 |
case "hex": |
| 99 |
var _1b=_18.split("-"); |
| 100 |
var _1c=_1b[0]; |
| 101 |
var _1d=_1b[1]; |
| 102 |
var _1e=_1b[2]; |
| 103 |
_1e=_1e.slice(1);
|
| 104 |
var _1f=_1e+_1d+_1c;
|
| 105 |
dojox.uuid.assert(_1f.length==15);
|
| 106 |
return _1f;
|
| 107 |
break;
|
| 108 |
case null: |
| 109 |
case "date": |
| 110 |
case Date:
|
| 111 |
var _20=3394248; |
| 112 |
var _21=16; |
| 113 |
var _22=_18.split("-"); |
| 114 |
var _23=parseInt(_22[0],_21); |
| 115 |
var _24=parseInt(_22[1],_21); |
| 116 |
var _25=parseInt(_22[2],_21); |
| 117 |
var _26=_25&4095; |
| 118 |
_26<<=16;
|
| 119 |
_26+=_24; |
| 120 |
_26*=4294967296;
|
| 121 |
_26+=_23; |
| 122 |
var _27=_26/10000; |
| 123 |
var _28=60*60; |
| 124 |
var _29=_20;
|
| 125 |
var _2a=_29*_28;
|
| 126 |
var _2b=_2a*1000; |
| 127 |
var _2c=_27-_2b;
|
| 128 |
var _2d=new Date(_2c); |
| 129 |
return _2d;
|
| 130 |
break;
|
| 131 |
default:
|
| 132 |
dojox.uuid.assert(false,"dojox.uuid.getTimestamp was not passed a valid returnType: "+_19); |
| 133 |
break;
|
| 134 |
} |
| 135 |
}; |
| 136 |
} |