1 package com.atlassian.pageobjects.elements;
2
3 import com.google.common.collect.ImmutableMap;
4
5 import java.util.Map;
6
7
8
9
10
11 public class WebDriverElementMappings
12 {
13 private static final Map<Class<? extends PageElement>, Class<? extends PageElement>> MAPPINGS = ImmutableMap.<Class<? extends PageElement>, Class<? extends PageElement>>builder()
14 .put(PageElement.class, WebDriverElement.class)
15 .put(SelectElement.class, WebDriverSelectElement.class)
16 .put(MultiSelectElement.class, WebDriverMultiSelectElement.class)
17 .put(CheckboxElement.class, WebDriverCheckboxElement.class)
18 .build();
19
20
21 @SuppressWarnings({"unchecked"})
22 public static <T extends PageElement> Class<T> findMapping(Class<T> input)
23 {
24 if (!input.isInterface())
25 {
26
27 return input;
28 }
29 Class<T> answer = (Class<T>) MAPPINGS.get(input);
30 if (answer == null)
31 {
32 answer = (Class<T>) WebDriverElement.class;
33 }
34 return answer;
35 }
36 }