OSDN Git Service

am 47a40013: Merge "Fix "@null" resource values in LayoutLib. [DO NOT MERGE]" into...
[android-x86/frameworks-base.git] / docs / html / jd_tag_helpers.js
1 function mergeArrays() {
2   var arr = arguments[0] || [];
3   for (var i = 1; i < arguments.length; i++) {
4     arr = arr.concat(arguments[i]);
5   }
6   return arr;
7 }
8
9 var ALL_RESOURCES = mergeArrays(
10   DESIGN_RESOURCES,
11   DISTRIBUTE_RESOURCES,
12   GOOGLE_RESOURCES,
13   GUIDE_RESOURCES,
14   SAMPLES_RESOURCES,
15   TOOLS_RESOURCES,
16   TRAINING_RESOURCES,
17   YOUTUBE_RESOURCES,
18   BLOGGER_RESOURCES
19 );
20
21 for (var i = 0; i < ALL_RESOURCES.length; i++) {
22   ALL_RESOURCES[i].index = i;
23 }
24
25 function mergeMaps() {
26   var allRes = {};
27   var offset = 0;
28
29   for (var i = 0; i < arguments.length; i++) {
30     var r = arguments[i];
31     for (var tag in r.map) {
32       allRes[tag] = allRes[tag] || [];
33       allRes[tag] = allRes[tag].concat(r.map[tag].map(function(i){ return ALL_RESOURCES[i + offset]; }));
34     }
35     offset += r.arr.length;
36   }
37
38   return allRes;
39 }
40
41 function setFromArray(arr) {
42   arr = arr || [];
43   var set = {};
44   for (var i = 0; i < arr.length; i++) {
45     set[arr[i]] = true;
46   }
47   return set;
48 }
49
50 function buildResourceLookupMap(resourceDict) {
51   var map = {};
52   for (var key in resourceDict) {
53     var dictForKey = {};
54     var srcArr = resourceDict[key];
55     for (var i = 0; i < srcArr.length; i++) {
56       dictForKey[srcArr[i].index] = true;
57     }
58     map[key] = dictForKey;
59   }
60   return map;
61 }
62
63 // Type lookups
64
65 var ALL_RESOURCES_BY_TYPE = {
66   'design': DESIGN_RESOURCES,
67   'distribute': DISTRIBUTE_RESOURCES,
68   'google': GOOGLE_RESOURCES,
69   'guide': GUIDE_RESOURCES,
70   'samples': SAMPLES_RESOURCES,
71   'tools': TOOLS_RESOURCES,
72   'training': TRAINING_RESOURCES,
73   'youtube': YOUTUBE_RESOURCES,
74   'blog': BLOGGER_RESOURCES
75 };
76 var IS_RESOURCE_OF_TYPE = buildResourceLookupMap(ALL_RESOURCES_BY_TYPE);
77
78 // Tag lookups
79
80 var ALL_RESOURCES_BY_TAG = mergeMaps(
81   {map:DESIGN_BY_TAG,arr:DESIGN_RESOURCES},
82   {map:DISTRIBUTE_BY_TAG,arr:DISTRIBUTE_RESOURCES},
83   {map:GOOGLE_BY_TAG,arr:GOOGLE_RESOURCES},
84   {map:GUIDE_BY_TAG,arr:GUIDE_RESOURCES},
85   {map:SAMPLES_BY_TAG,arr:SAMPLES_RESOURCES},
86   {map:TOOLS_BY_TAG,arr:TOOLS_RESOURCES},
87   {map:TRAINING_BY_TAG,arr:TRAINING_RESOURCES},
88   {map:YOUTUBE_BY_TAG,arr:YOUTUBE_RESOURCES},
89   {map:BLOGGER_BY_TAG,arr:BLOGGER_RESOURCES}
90 );
91 var IS_RESOURCE_TAGGED = buildResourceLookupMap(ALL_RESOURCES_BY_TAG);
92
93 // URL and language lookups
94
95 var ALL_RESOURCES_BY_URL = {};
96 var ALL_RESOURCES_BY_LANG = {};
97
98 for (var i = 0; i < ALL_RESOURCES.length; i++) {
99   var res = ALL_RESOURCES[i];
100   var lang = res.lang;
101   if (lang) {
102     ALL_RESOURCES_BY_LANG[lang] = ALL_RESOURCES_BY_LANG[lang] || [];
103     ALL_RESOURCES_BY_LANG[lang].push(res);
104   }
105   var url = res.url;
106   if (url) {
107     ALL_RESOURCES_BY_URL[url] = res;
108   }
109 }
110 var IS_RESOURCE_IN_LANG = buildResourceLookupMap(ALL_RESOURCES_BY_LANG);