]> git.proxmox.com Git - mirror_edk2.git/blame - 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
a29c47e0 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
136adffc 25import org.tianocore.exception.EdkException;\r
a29c47e0 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
a29c47e0 34 this.map = new HashMap<ToolChainKey, String>();\r
35 }\r
36\r
c773bec0 37 public String put(String key, String delimiter, String value) {\r
a29c47e0 38 ToolChainKey toolChainKey;\r
39\r
40 try {\r
41 toolChainKey = new ToolChainKey(key, delimiter);\r
42 } catch (Exception e) {\r
c773bec0 43 return null;\r
a29c47e0 44 }\r
45 return (String)map.put(toolChainKey, value);\r
46 }\r
47\r
c773bec0 48 public String put(String key, String value) {\r
a29c47e0 49 ToolChainKey toolChainKey;\r
50\r
51 try {\r
52 toolChainKey = new ToolChainKey(key);\r
53 } catch (Exception e) {\r
c773bec0 54 return null;\r
a29c47e0 55 }\r
56 return (String)map.put(toolChainKey, value);\r
57 }\r
58\r
c773bec0 59 public String put(String[] key, String value) {\r
a29c47e0 60 ToolChainKey toolChainKey;\r
61\r
62 try {\r
63 toolChainKey = new ToolChainKey(key);\r
64 } catch (Exception e) {\r
c773bec0 65 return null;\r
a29c47e0 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
c773bec0 74 public String get(String key) {\r
a29c47e0 75 ToolChainKey toolChainKey;\r
76\r
77 try {\r
78 toolChainKey = new ToolChainKey(key);\r
79 } catch (Exception e) {\r
c773bec0 80 return null;\r
a29c47e0 81 }\r
82 return get(toolChainKey);\r
83 }\r
84\r
c773bec0 85 public String get(String key, String delimiter) {\r
a29c47e0 86 ToolChainKey toolChainKey;\r
87\r
88 try {\r
89 toolChainKey = new ToolChainKey(key, delimiter);\r
90 } catch (Exception e) {\r
c773bec0 91 return null;\r
a29c47e0 92 }\r
93 return get(toolChainKey);\r
94 }\r
95\r
c773bec0 96 public String get(String[] key) {\r
a29c47e0 97 ToolChainKey toolChainKey;\r
98\r
99 try {\r
100 toolChainKey = new ToolChainKey(key);\r
101 } catch (Exception e) {\r
c773bec0 102 return null;\r
a29c47e0 103 }\r
104 return get(toolChainKey);\r
105 }\r
106\r
c773bec0 107 public String get(ToolChainKey key) {\r
a29c47e0 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
c773bec0 118 return null;\r
a29c47e0 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
c773bec0 136 return null;\r
a29c47e0 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
a29c47e0 159}\r
160\r