1f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal/* 2f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * Copyright (C) 2016 The Android Open Source Project 3f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * 4f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * Licensed under the Apache License, Version 2.0 (the "License"); 5f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * you may not use this file except in compliance with the License. 6f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * You may obtain a copy of the License at 7f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * 8f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * http://www.apache.org/licenses/LICENSE-2.0 9f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * 10f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * Unless required by applicable law or agreed to in writing, software 11f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * distributed under the License is distributed on an "AS IS" BASIS, 12f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * See the License for the specific language governing permissions and 14f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * limitations under the License. 15f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal */ 16f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal 17f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawalpackage com.android.server.wifi; 18f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal 19f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawalimport android.annotation.NonNull; 20f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal 21f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawalimport com.android.internal.annotations.VisibleForTesting; 22f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal 23f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal/** Abstraction of android.os.SystemProperties, to enable mocking out its static methods. */ 24f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal@VisibleForTesting 25f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawalpublic interface PropertyService { 26f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal /** 27f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * Get the current value of |key|. 28f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * @return value of |key|, if key exists; |defaultValue| or empty string otherwise 29f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal */ 30f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal @NonNull 31f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal String get(String key, String defaultValue); 32f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal 33f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal /** 34f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * Set the value for |key|. 35f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * @throws IllegalArgumentException if the key exceeds 32 characters 36f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal * @throws IllegalArgumentException if the value exceeds 92 characters 37f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal */ 38f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal void set(String key, String val); 39e18d6159cfdfa9416386836d7b18249c82df0750Paul Stewart 40e18d6159cfdfa9416386836d7b18249c82df0750Paul Stewart /** 41e18d6159cfdfa9416386836d7b18249c82df0750Paul Stewart * Get the current value of |key|. 42e18d6159cfdfa9416386836d7b18249c82df0750Paul Stewart * @return value of |key|, if key exists; |defaultValue| otherwise 43e18d6159cfdfa9416386836d7b18249c82df0750Paul Stewart */ 44e18d6159cfdfa9416386836d7b18249c82df0750Paul Stewart boolean getBoolean(String key, boolean defaultValue); 45e18d6159cfdfa9416386836d7b18249c82df0750Paul Stewart 461d4d6b7b1fe4d95ad04c8f0c501e233be4160f90Roshan Pius /** 471d4d6b7b1fe4d95ad04c8f0c501e233be4160f90Roshan Pius * Get the current value of |key|. 481d4d6b7b1fe4d95ad04c8f0c501e233be4160f90Roshan Pius * @return value of |key|, if key exists; |defaultValue| otherwise 491d4d6b7b1fe4d95ad04c8f0c501e233be4160f90Roshan Pius */ 501d4d6b7b1fe4d95ad04c8f0c501e233be4160f90Roshan Pius String getString(String key, String defaultValue); 51f74a1cfd50d7b44aa7e4b598eb229cd464983dfemukesh agrawal} 52