Copyright test
[jalview.git] / src / com / stevesoft / pat / StringLike.java
1 /*******************************************************************************
2  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3  * Copyright (C) $(date) The Jalview Authors
4  *
5  * This file is part of Jalview.
6  *  
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3
10  * of the License, or (at your option) any later version.
11  *   
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
19  * The Jalview Authors are detailed in the 'AUTHORS' file.
20  *******************************************************************************/
21 package //
22 // This software is now distributed according to
23 // the Lesser Gnu Public License.  Please see
24 // http://www.gnu.org/copyleft/lesser.txt for
25 // the details.
26 //    -- Happy Computing!
27 //
28 com.stevesoft.pat;
29
30 /**
31  * Package pat can search anything that implements this interface. Package pat
32  * assumes the following:
33  * <ul>
34  * <li>The StringLike object will not change. Calls to charAt(int) will not vary
35  * with time.
36  * <li>The length of the object being searched is known before the search begins
37  * and does not vary with time.
38  * </ul>
39  * Note that searching String is probably faster than searching other objects,
40  * so searching String is still preferred if possible.
41  */
42 public interface StringLike
43 {
44   public char charAt(int i);
45
46   public String toString();
47
48   public int length();
49
50   public String substring(int i1, int i2);
51
52   /**
53    * Obtain the underlying object, be it a String, char[], RandomAccessFile,
54    * whatever.
55    */
56   public Object unwrap();
57
58   /**
59    * By default, the result is put in a String or char[] when a replace is done.
60    * If you wish to save the result in some other StringBufferLike then you can
61    * do this by implementing this method, or over-riding it's behavior from an
62    * existing class.
63    */
64   public BasicStringBufferLike newStringBufferLike();
65
66   public int indexOf(char c);
67 }