View Javadoc

1   /*
2    * Copyright (c) 2002-2012, the original author or authors.
3    *
4    * This software is distributable under the BSD license. See the terms of the
5    * BSD license in the documentation provided with this software.
6    *
7    * http://www.opensource.org/licenses/bsd-license.php
8    */
9   package jline.console.history;
10  
11  import java.util.Iterator;
12  import java.util.ListIterator;
13  
14  /**
15   * Console history.
16   *
17   * @author <a href="mailto:mwp1@cornell.edu">Marc Prud'hommeaux</a>
18   * @author <a href="mailto:jason@planet57.com">Jason Dillon</a>
19   * @since 2.3
20   */
21  public interface History
22      extends Iterable<History.Entry>
23  {
24      int size();
25  
26      boolean isEmpty();
27  
28      int index();
29  
30      void clear();
31  
32      CharSequence get(int index);
33  
34      void add(CharSequence line);
35  
36      /**
37       * Set the history item at the given index to the given CharSequence.
38       *
39       * @param index the index of the history offset
40       * @param item the new item
41       * @since 2.7
42       */
43      void set(int index, CharSequence item);
44  
45      /**
46       * Remove the history element at the given index.
47       *
48       * @param i the index of the element to remove
49       * @return the removed element
50       * @since 2.7
51       */
52      CharSequence remove(int i);
53  
54      /**
55       * Remove the first element from history.
56       *
57       * @return the removed element
58       * @since 2.7
59       */
60      CharSequence removeFirst();
61  
62      /**
63       * Remove the last element from history
64       *
65       * @return the removed element
66       * @since 2.7
67       */
68      CharSequence removeLast();
69  
70      void replace(CharSequence item);
71  
72      //
73      // Entries
74      //
75      
76      interface Entry
77      {
78          int index();
79  
80          CharSequence value();
81      }
82  
83      ListIterator<Entry> entries(int index);
84  
85      ListIterator<Entry> entries();
86  
87      Iterator<Entry> iterator();
88  
89      //
90      // Navigation
91      //
92  
93      CharSequence current();
94  
95      boolean previous();
96  
97      boolean next();
98  
99      boolean moveToFirst();
100 
101     boolean moveToLast();
102 
103     boolean moveTo(int index);
104 
105     void moveToEnd();
106 }