]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - Tools/Source/GenBuild/org/tianocore/build/toolchain/ToolChainMap.java
Changed the code to read the correct configuration name in target.txt file;
[mirror_edk2.git] / Tools / Source / GenBuild / org / tianocore / build / toolchain / ToolChainMap.java
... / ...
CommitLineData
1/*++\r
2\r
3Copyright (c) 2006, Intel Corporation\r
4All rights reserved. This program and the accompanying materials\r
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11\r
12Module Name:\r
13 ToolChainMap.java\r
14\r
15Abstract:\r
16\r
17--*/\r
18\r
19package org.tianocore.build.toolchain;\r
20\r
21import java.util.HashMap;\r
22import java.util.Map;\r
23import java.util.Set;\r
24\r
25import org.tianocore.exception.EdkException;\r
26\r
27public class ToolChainMap {\r
28\r
29 private int matchLevel = ToolChainKey.keyLength - 2;\r
30\r
31 private Map<ToolChainKey, String> map = null;\r
32\r
33 public ToolChainMap() {\r
34 this.map = new HashMap<ToolChainKey, String>();\r
35 }\r
36\r
37 public String put(String key, String delimiter, String value) {\r
38 ToolChainKey toolChainKey;\r
39\r
40 try {\r
41 toolChainKey = new ToolChainKey(key, delimiter);\r
42 } catch (Exception e) {\r
43 return null;\r
44 }\r
45 return (String)map.put(toolChainKey, value);\r
46 }\r
47\r
48 public String put(String key, String value) {\r
49 ToolChainKey toolChainKey;\r
50\r
51 try {\r
52 toolChainKey = new ToolChainKey(key);\r
53 } catch (Exception e) {\r
54 return null;\r
55 }\r
56 return (String)map.put(toolChainKey, value);\r
57 }\r
58\r
59 public String put(String[] key, String value) {\r
60 ToolChainKey toolChainKey;\r
61\r
62 try {\r
63 toolChainKey = new ToolChainKey(key);\r
64 } catch (Exception e) {\r
65 return null;\r
66 }\r
67 return (String)map.put(toolChainKey, value);\r
68 }\r
69\r
70 public String put(ToolChainKey key, String value) {\r
71 return (String)map.put(key, value);\r
72 }\r
73\r
74 public String get(String key) {\r
75 ToolChainKey toolChainKey;\r
76\r
77 try {\r
78 toolChainKey = new ToolChainKey(key);\r
79 } catch (Exception e) {\r
80 return null;\r
81 }\r
82 return get(toolChainKey);\r
83 }\r
84\r
85 public String get(String key, String delimiter) {\r
86 ToolChainKey toolChainKey;\r
87\r
88 try {\r
89 toolChainKey = new ToolChainKey(key, delimiter);\r
90 } catch (Exception e) {\r
91 return null;\r
92 }\r
93 return get(toolChainKey);\r
94 }\r
95\r
96 public String get(String[] key) {\r
97 ToolChainKey toolChainKey;\r
98\r
99 try {\r
100 toolChainKey = new ToolChainKey(key);\r
101 } catch (Exception e) {\r
102 return null;\r
103 }\r
104 return get(toolChainKey);\r
105 }\r
106\r
107 public String get(ToolChainKey key) {\r
108 String result = map.get(key);\r
109 if (result != null || map.containsKey(key)) {\r
110 return result;\r
111 }\r
112\r
113 String[] keySet = key.getKeySet();\r
114 ToolChainKey tmpKey;\r
115 try {\r
116 tmpKey = new ToolChainKey(keySet);\r
117 } catch (Exception e) {\r
118 return null;\r
119 }\r
120\r
121 int level = matchLevel;\r
122 while (level >= 0) {\r
123 int tmpLevel = level;\r
124 while (tmpLevel >= level) {\r
125 String[] tmpKeySet = tmpKey.getKeySet();\r
126 try {\r
127 if (!tmpKeySet[tmpLevel].equals("*")) {\r
128 tmpKey.setKey("*", tmpLevel);\r
129 tmpLevel = matchLevel;\r
130 } else {\r
131 tmpKey.setKey(keySet[tmpLevel], tmpLevel);\r
132 --tmpLevel;\r
133 continue;\r
134 }\r
135 } catch (Exception e) {\r
136 return null;\r
137 }\r
138\r
139 result = map.get(tmpKey);\r
140 if (result != null) {\r
141 map.put(key, result);\r
142 return result;\r
143 }\r
144 }\r
145 --level;\r
146 }\r
147\r
148 map.put(key, result);\r
149 return result;\r
150 }\r
151\r
152 public int size() {\r
153 return map.size();\r
154 }\r
155\r
156 public Set<ToolChainKey> keySet() {\r
157 return (Set<ToolChainKey>)map.keySet();\r
158 }\r
159}\r
160\r