root / trunk / web / dojo / dojox / uuid / _base.js
History | View | Annotate | Download (3.22 KB)
1 | 9 | andrej.cim | /*
|
---|---|---|---|
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 | } |