KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > susebox > jtopas > impl > NoCaseSequenceStore


1 /*
2  * NoCaseSequenceStore.java: case-insensitive derivate of SequenceStore
3  *
4  * Copyright (C) 2004 Heiko Blau
5  *
6  * This file belongs to the JTopas Library.
7  * JTopas is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU Lesser General Public License as published by the
9  * Free Software Foundation; either version 2.1 of the License, or (at your
10  * option) any later version.
11  *
12  * This software is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE.
15  * See the GNU Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License along
18  * with JTopas. If not, write to the
19  *
20  * Free Software Foundation, Inc.
21  * 59 Temple Place, Suite 330,
22  * Boston, MA 02111-1307
23  * USA
24  *
25  * or check the Internet: http://www.fsf.org
26  *
27  * Contact:
28  * email: heiko@susebox.de
29  */

30
31 package de.susebox.jtopas.impl;
32
33 //-----------------------------------------------------------------------------
34
// Imports
35
//
36

37 //-----------------------------------------------------------------------------
38
// Class NoCaseSequenceStore
39
//
40

41 /**
42  * Case-insensitive extension of {@link SequenceStore}.
43  *
44  * @see de.susebox.jtopas.StandardTokenizerProperties
45  * @see de.susebox.jtopas.spi.SequenceHandler
46  * @author Heiko Blau
47  */

48 public class NoCaseSequenceStore extends SequenceStore {
49   
50   //---------------------------------------------------------------------------
51
// Constructors
52
//
53

54   /**
55    * The constructor initializes a <code>NoCaseSequenceStore</code>
56    *
57    * @param useExactLength if <code>true</code> search only for a property that
58    * has the length of {@link de.susebox.jtopas.spi.DataProvider#getLength}
59    */

60   public NoCaseSequenceStore(boolean useExactLength) {
61     super(useExactLength);
62   }
63
64   
65   //---------------------------------------------------------------------------
66
// Implementation
67
//
68

69   /**
70    * Derived method for case-insensitive handling.
71    *
72    * @param startChar a not normalized start character
73    * @return the normalized start character
74    */

75   protected char getStartChar(char startChar) {
76     return Character.toUpperCase(startChar);
77   }
78   
79   /**
80    * Compare tho characters. Returns the difference of the to characters, 0 if
81    * they are equal.
82    *
83    * @param char1 first character to compare
84    * @param char2 first character to compare
85    * @return 0 if equal, < 0 if char1 < char2, > 0 otherwise
86    */

87   protected int compare(char char1, char char2) {
88     int res = char1 - char2;
89
90     if (res != 0) {
91       res = Character.toUpperCase(char1) - Character.toUpperCase(char2);
92     }
93     return res;
94   }
95 }
96
Popular Tags