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