• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.google.android.apps.common.testing.accessibility.framework.uielement;
2 
3 import static com.google.common.base.Preconditions.checkNotNull;
4 
5 import com.google.android.apps.common.testing.accessibility.framework.uielement.proto.AccessibilityHierarchyProtos.AccessibilityHierarchyOriginProto;
6 import com.google.common.collect.EnumBiMap;
7 import com.google.common.collect.ImmutableMap;
8 
9 /** Represents a type of data source from which an AccessibilityHierarchy may be constructed. */
10 public enum AccessibilityHierarchyOrigin {
11   UNKNOWN,
12   VIEWS,
13   ACCESSIBILITY_NODE_INFOS,
14   ACCESSIBILITY_NODE_INFOS_AND_VIEWS,
15   WINDOW_LIST;
16 
17   /** Mapping between Java and proto values. */
18   private static final EnumBiMap<AccessibilityHierarchyOrigin, AccessibilityHierarchyOriginProto>
19       ORIGIN_MAP =
20           EnumBiMap.create(
21               ImmutableMap
22                   .<AccessibilityHierarchyOrigin, AccessibilityHierarchyOriginProto>builder()
23                   .put(
24                       AccessibilityHierarchyOrigin.UNKNOWN,
25                       AccessibilityHierarchyOriginProto.ORIGIN_UNSPECIFIED)
26                   .put(
27                       AccessibilityHierarchyOrigin.VIEWS,
28                       AccessibilityHierarchyOriginProto.ORIGIN_VIEWS)
29                   .put(
30                       AccessibilityHierarchyOrigin.ACCESSIBILITY_NODE_INFOS,
31                       AccessibilityHierarchyOriginProto.ORIGIN_ACCESSIBILITY_NODE_INFOS)
32                   .put(
33                       AccessibilityHierarchyOrigin.ACCESSIBILITY_NODE_INFOS_AND_VIEWS,
34                       AccessibilityHierarchyOriginProto.ORIGIN_ACCESSIBILITY_NODE_INFOS_AND_VIEWS)
35                   .put(
36                       AccessibilityHierarchyOrigin.WINDOW_LIST,
37                       AccessibilityHierarchyOriginProto.ORIGIN_WINDOW_LIST)
38                   .buildOrThrow());
39 
fromProto(AccessibilityHierarchyOriginProto proto)40   public static AccessibilityHierarchyOrigin fromProto(AccessibilityHierarchyOriginProto proto) {
41     return checkNotNull(ORIGIN_MAP.inverse().get(proto));
42   }
43 
toProto()44   public AccessibilityHierarchyOriginProto toProto() {
45     return checkNotNull(ORIGIN_MAP.get(this));
46   }
47 }
48