View Javadoc

1   package com.atlassian.webtest.ui.keys;
2   
3   import com.google.common.collect.Lists;
4   
5   import java.util.ArrayList;
6   import java.util.Arrays;
7   import java.util.Collection;
8   import java.util.Collections;
9   import java.util.List;
10  
11  /**
12   * A {@link KeySequence} that contains instances of {@link SpecialKeys}.
13   *
14   * @since v1.21
15   */
16  public class SpecialKeysSequence extends AbstractKeySequence implements KeySequence
17  {
18      List<SpecialKeys> specialKeys;
19  
20      public SpecialKeysSequence(SpecialKeys specialKey, TypeMode typeMode, Collection<ModifierKey> toPress,
21              Collection<KeyEventType> events)
22      {
23          this(Arrays.asList(specialKey), typeMode, toPress, events);
24      }
25  
26      public SpecialKeysSequence(List<SpecialKeys> specialKeys, TypeMode typeMode, Collection<ModifierKey> toPress,
27              Collection<KeyEventType> events)
28      {
29          super(typeMode, toPress, events);
30          this.specialKeys = new ArrayList<SpecialKeys>(specialKeys);
31      }
32  
33      private List<Key> copy(List<SpecialKeys> specialKeys)
34      {
35          List<Key> answer = Lists.newArrayList();
36          for (SpecialKeys spKey : specialKeys)
37          {
38              answer.add(spKey);
39          }
40          return answer;
41      }
42  
43      public List<Key> keys()
44      {
45          return Collections.unmodifiableList(copy(specialKeys));
46      }
47  
48      public List<SpecialKeys> specialKeys()
49      {
50          return Collections.unmodifiableList(new ArrayList<SpecialKeys>(specialKeys));
51      }
52  }