litesoft
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
package org.litesoft.core.util.stringmatching;
public class PartsStringMatcher extends AbstractStringMatcher
{
private String[] mParts;
private int mLastIndex;
// Package Friendly
PartsStringMatcher( int pMinLength, boolean pIgnoreCase, String[] pParts )
{
super( pMinLength, pIgnoreCase );
mParts = pParts;
mLastIndex = pParts.length - 1;
}
protected boolean LLmatches( String pInQuestion )
{
int zIQlen = pInQuestion.length();
int zMinLength = mMinLength;
int zFrom = 0;
int zPndx = 0;
String part = mParts[zPndx++];
int zPLen = part.length();
if ( zPLen != 0 )
{
if ( !pInQuestion.startsWith( part ) )
{
return false;
}
zFrom = zPLen;
zMinLength -= zPLen;
}
do
{
part = mParts[zPndx++];
zPLen = part.length();
if ( zPLen != 0 )
{
int zAt = pInQuestion.indexOf( part, zFrom );
if ( zAt == -1 )
{
return false;
}
zFrom = zAt + zPLen;
zMinLength -= zPLen;
if ( (zIQlen - zFrom) < zMinLength )
{
return false;
}
}
}
while ( zPndx < mLastIndex );
part = mParts[mLastIndex];
return (part.length() == 0) || pInQuestion.endsWith( part );
}
public String toString()
{
StringBuilder sb = new StringBuilder( "Parts( '" ).append( mParts[0] ).append( '"' );
for ( int i = 1; i < mParts.length; i++ )
{
sb.append( ", '" ).append( mParts[i] ).append( '"' );
}
return sb.append( " )" ).toString();
}
}
|
Revision |
Author |
Commited |
Message |
2
|
GeorgeS
|
Sun 07 Feb, 2010 12:50:58 +0000 |
|