1 /*
2  * Copyright (C) 2018 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.tradefed.testtype.suite.params;
17 
18 /** Special values associated with the suite "parameter" keys in the metadata of each module. */
19 public enum ModuleParameters {
20     /** describes a parameterization based on app that should be installed in instant mode. */
21     INSTANT_APP("instant_app", "instant_app_family"),
22     NOT_INSTANT_APP("not_instant_app", "instant_app_family"),
23 
24     MULTI_ABI("multi_abi", "multi_abi_family"),
25     NOT_MULTI_ABI("not_multi_abi", "multi_abi_family"),
26 
27     SECONDARY_USER("secondary_user", "secondary_user_family"),
28     NOT_SECONDARY_USER("not_secondary_user", "secondary_user_family");
29 
30     public static final String INSTANT_APP_FAMILY = "instant_app_family";
31     public static final String MULTI_ABI_FAMILY = "multi_abi_family";
32     public static final String SECONDARY_USER_FAMILY = "secondary_user_family";
33     public static final String[] FAMILY_LIST =
34             new String[] {INSTANT_APP_FAMILY, MULTI_ABI_FAMILY, SECONDARY_USER_FAMILY};
35 
36     private final String mName;
37     /** Defines whether several module parameters are associated and mutually exclusive. */
38     private final String mFamily;
39 
ModuleParameters(String name, String family)40     private ModuleParameters(String name, String family) {
41         mName = name;
42         mFamily = family;
43     }
44 
45     @Override
toString()46     public String toString() {
47         return mName;
48     }
49 
50     /** Returns the family of the Module Parameter. */
getFamily()51     public String getFamily() {
52         return mFamily;
53     }
54 }
55