1 | var EnumFactory = function() {
|
2 | if(arguments.length > 0){
|
3 | var Enum = function Enum(arg){
|
4 | if(typeof arg === 'number' && arg % 1 == 0) {
|
5 | return Enum._values[arg];
|
6 | } else if(Enum[arg]){
|
7 | return Enum[arg]
|
8 | } else if (Enum._values.indexOf(arg) !== -1 ) {
|
9 | return arg;
|
10 | } else if (arg === null) {
|
11 | return null;
|
12 | } else {
|
13 | return '';
|
14 | }
|
15 | };
|
16 | var dxList = [];
|
17 | dxList.push('');
|
18 | for(var arg in arguments){
|
19 | arg = String(arguments[arg]);
|
20 | Object.defineProperty(Enum, arg.toUpperCase(), {configurable: false, enumerable: true, value: arg, writable: false});
|
21 | dxList.push(arg);
|
22 | }
|
23 | Object.defineProperty(Enum, '_values', {configurable: false, enumerable: false, value: dxList, writable: false});
|
24 | Object.defineProperty(Enum, '_members', {configurable: false, enumerable: false, value: dxList.slice(1), writable: false});
|
25 | Object.defineProperty(Enum, '_string', {configurable: false, enumerable: false, value: stringified(Enum), writable: false});
|
26 | Object.freeze(Enum);
|
27 | return Enum;
|
28 | } else {
|
29 | throw "No arguments - could not create Enum.";
|
30 | }
|
31 | };
|
32 |
|
33 | function stringified(anEnum) {
|
34 | var s = [];
|
35 | for(var i in anEnum._values){
|
36 | if(anEnum._values[i] != ''){
|
37 | s.push("'" + anEnum._values[i] + "'");
|
38 | }
|
39 | }
|
40 | return s.join(',');
|
41 | }
|
42 |
|
43 | exports.EnumFactory = EnumFactory;
|
44 |
|
45 |
|
46 |
|
47 |
|
48 |
|
49 |
|
50 |
|