1bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root/*
2bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * Copyright (C) 2006 The Android Open Source Project
3bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root *
4bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * Licensed under the Apache License, Version 2.0 (the "License");
5bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * you may not use this file except in compliance with the License.
6bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * You may obtain a copy of the License at
7bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root *
8bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root *      http://www.apache.org/licenses/LICENSE-2.0
9bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root *
10bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * Unless required by applicable law or agreed to in writing, software
11bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * distributed under the License is distributed on an "AS IS" BASIS,
12bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * See the License for the specific language governing permissions and
14bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root * limitations under the License.
15bd393b7f39a71a13893aea8b64474b0b07ebe0ddKenny Root */
16edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
17edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectimport java.io.BufferedReader;
18edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectimport java.util.HashMap;
19edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
20edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectpublic class ParameterChecker {
21edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
22edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project    HashMap<String,String[]> map = new HashMap<String,String[]>();
23edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
24edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project    public ParameterChecker(BufferedReader reader) throws Exception {
25006c792d99859341201d19f2b86886cc6ee525b4Mathias Agopian        String line;
26006c792d99859341201d19f2b86886cc6ee525b4Mathias Agopian        while ((line = reader.readLine()) != null) {
27006c792d99859341201d19f2b86886cc6ee525b4Mathias Agopian            String s = line.trim();
28006c792d99859341201d19f2b86886cc6ee525b4Mathias Agopian
29006c792d99859341201d19f2b86886cc6ee525b4Mathias Agopian            // skip empty lines
30006c792d99859341201d19f2b86886cc6ee525b4Mathias Agopian            if (s.isEmpty()) {
31006c792d99859341201d19f2b86886cc6ee525b4Mathias Agopian                continue;
32006c792d99859341201d19f2b86886cc6ee525b4Mathias Agopian            }
33006c792d99859341201d19f2b86886cc6ee525b4Mathias Agopian
34006c792d99859341201d19f2b86886cc6ee525b4Mathias Agopian            // skip single-line comments
35006c792d99859341201d19f2b86886cc6ee525b4Mathias Agopian            if (s.startsWith("//") ||
36006c792d99859341201d19f2b86886cc6ee525b4Mathias Agopian                s.startsWith("#")) {
37006c792d99859341201d19f2b86886cc6ee525b4Mathias Agopian                continue;
38006c792d99859341201d19f2b86886cc6ee525b4Mathias Agopian            }
39006c792d99859341201d19f2b86886cc6ee525b4Mathias Agopian
40edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project            String[] tokens = s.split("\\s");
41edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project            map.put(tokens[0], tokens);
42edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project        }
43edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project    }
44edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project
45edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project    public String[] getChecks(String functionName) {
46edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project        String[] checks = map.get(functionName);
47edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project        if (checks == null &&
48edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project            (functionName.endsWith("fv") ||
49edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project             functionName.endsWith("xv") ||
50edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project             functionName.endsWith("iv"))) {
51edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project            functionName = functionName.substring(0, functionName.length() - 2);
52edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project            checks = map.get(functionName);
53edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project        }
54edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project        return checks;
55edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project    }
56edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project}
57