1   package com.atlassian.pageobjects.elements;
2   
3   import com.atlassian.pageobjects.elements.timeout.TimeoutType;
4   
5   import java.lang.annotation.ElementType;
6   import java.lang.annotation.Retention;
7   import java.lang.annotation.RetentionPolicy;
8   import java.lang.annotation.Target;
9   
10  /**
11   * Injects an Element into the field. Only one of the selector types should be specified.
12   */
13  @Retention(RetentionPolicy.RUNTIME)
14  @Target(ElementType.FIELD)
15  public @interface ElementBy
16  {
17      String id() default "";
18  
19      String className() default "";
20  
21      String linkText() default "";
22  
23      String partialLinkText() default "";
24  
25      String cssSelector() default "";
26  
27      String name() default "";
28  
29      String xpath() default "";
30  
31      String tagName() default "";
32  
33      TimeoutType timeoutType() default TimeoutType.DEFAULT;
34  }