Gridarta Editor
KeywordMap.java
Go to the documentation of this file.
1
/*
2
* Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3
* Copyright (C) 2000-2015 The Gridarta Developers.
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License along
16
* with this program; if not, write to the Free Software Foundation, Inc.,
17
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
*/
19
20
package
net.sf.gridarta.textedit.textarea.tokenmarker;
21
22
import
javax.swing.text.Segment;
23
import
net
.
sf
.
gridarta
.
textedit
.
textarea
.
Token
;
24
35
public
class
KeywordMap
{
36
40
private
final
Node
rootNode
=
new
Node
();
41
45
private
final
boolean
ignoreCase
;
46
51
public
KeywordMap
(
final
boolean
ignoreCase
) {
52
this.ignoreCase =
ignoreCase
;
53
}
54
63
public
byte
lookup
(
final
Segment text,
final
int
offset,
final
int
length) {
64
Node
node =
rootNode
;
65
for
(
int
i = offset, end = offset + length; i < end; i++) {
66
node = node.
lookup
(
ignoreCase
? Character.toUpperCase(text.array[i]) : text.array[i]);
67
if
(node ==
null
) {
68
return
Token
.
NULL
;
69
}
70
}
71
return
node.
getId
();
72
}
73
79
public
void
add
(
final
CharSequence keyword,
final
byte
id
) {
80
Node
node =
rootNode
;
81
for
(
int
i = 0, len = keyword.length(); i < len; i++) {
82
node = node.
define
(
ignoreCase
? Character.toUpperCase(keyword.charAt(i)) : keyword.charAt(i));
83
}
84
node.
setId
(
id
);
85
}
86
87
}
net.sf.gridarta.textedit.textarea
net.sf.gridarta
net.sf.gridarta.textedit.textarea.tokenmarker.KeywordMap.rootNode
final Node rootNode
Definition:
KeywordMap.java:40
net.sf.gridarta.textedit.textarea.Token.NULL
static final byte NULL
Definition:
Token.java:26
net.sf
net.sf.gridarta.textedit.textarea.tokenmarker.KeywordMap.lookup
byte lookup(final Segment text, final int offset, final int length)
Definition:
KeywordMap.java:63
net.sf.gridarta.textedit
net.sf.gridarta.textedit.textarea.tokenmarker.KeywordMap.add
void add(final CharSequence keyword, final byte id)
Definition:
KeywordMap.java:79
net.sf.gridarta.textedit.textarea.tokenmarker.KeywordMap.KeywordMap
KeywordMap(final boolean ignoreCase)
Definition:
KeywordMap.java:51
net.sf.gridarta.textedit.textarea.Token
Definition:
Token.java:21
net
net.sf.gridarta.textedit.textarea.tokenmarker.Node.setId
void setId(final byte id)
Definition:
Node.java:85
net.sf.gridarta.textedit.textarea.tokenmarker.Node
Definition:
Node.java:30
net.sf.gridarta.textedit.textarea.tokenmarker.KeywordMap.ignoreCase
final boolean ignoreCase
Definition:
KeywordMap.java:45
net.sf.gridarta.textedit.textarea.tokenmarker.Node.getId
byte getId()
Definition:
Node.java:93
net.sf.gridarta.textedit.textarea.tokenmarker.KeywordMap
Definition:
KeywordMap.java:35
net.sf.gridarta.textedit.textarea.tokenmarker.Node.define
Node define(final char ch)
Definition:
Node.java:63
net.sf.gridarta.textedit.textarea.tokenmarker.Node.lookup
Node lookup(final char ch)
Definition:
Node.java:77
src
textedit
src
main
java
net
sf
gridarta
textedit
textarea
tokenmarker
KeywordMap.java
Generated by
1.8.17