01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17:
18: /**
19: * @author Nikolay A. Kuznetsov
20: * @version $Revision: 1.7.2.2 $
21: */package java.util.regex;
22:
23: /**
24: * Represents node accepting single character from the given char class. Note,
25: * this class contains normalized characters fo unicode case, asci case is
26: * supported through adding both symbols to the range.
27: *
28: * @author Nikolay A. Kuznetsov
29: * @version $Revision: 1.7.2.2 $
30: */
31: class UCIRangeSet extends LeafSet {
32:
33: private AbstractCharClass chars;
34:
35: private boolean alt = false;
36:
37: public UCIRangeSet(AbstractCharClass cs, AbstractSet next) {
38: super (next);
39: this .chars = cs.getInstance();
40: this .alt = cs.alt;
41: }
42:
43: public UCIRangeSet(AbstractCharClass cc) {
44: this .chars = cc.getInstance();
45: this .alt = cc.alt;
46: }
47:
48: public int accepts(int strIndex, CharSequence testString) {
49: return (chars.contains(Character.toLowerCase(Character
50: .toUpperCase(testString.charAt(strIndex))))) ? 1 : -1;
51: }
52:
53: protected String getName() {
54: return "UCI range:" + (alt ? "^ " : " ") + chars.toString(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
55: }
56: }
|