Gridarta Editor
TokenMarkerFactory.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
java.io.File;
23
import
java.util.HashMap;
24
import
java.util.Map;
25
import
org.jetbrains.annotations.NotNull;
26
import
org.jetbrains.annotations.Nullable;
27
32
public
class
TokenMarkerFactory
{
33
37
@NotNull
38
private
static
final
String
CROSSFIRE_DIALOG
=
"crossfire-dialog"
;
39
43
@NotNull
44
private
static
final
String
DAIMONIN_AI
=
"daimonin-ai"
;
45
49
@NotNull
50
private
static
final
Map<String, Class<? extends TokenMarker>>
TOKEN_MARKERS
=
new
HashMap<>();
51
52
static
{
53
TOKEN_MARKERS
.put(
"c"
,
CTokenMarker
.class);
54
TOKEN_MARKERS
.put(
"cc"
,
CTokenMarker
.class);
55
TOKEN_MARKERS
.put(
"cpp"
,
CTokenMarker
.class);
56
TOKEN_MARKERS
.put(
"h"
,
CTokenMarker
.class);
57
TOKEN_MARKERS
.put(
"hh"
,
CTokenMarker
.class);
58
TOKEN_MARKERS
.put(
"htm"
,
HTMLTokenMarker
.class);
59
TOKEN_MARKERS
.put(
"html"
,
HTMLTokenMarker
.class);
60
TOKEN_MARKERS
.put(
"js"
,
JavaScriptTokenMarker
.class);
61
TOKEN_MARKERS
.put(
"lua"
,
LuaTokenMarker
.class);
62
TOKEN_MARKERS
.put(
"py"
,
PythonTokenMarker
.class);
63
TOKEN_MARKERS
.put(
"xml"
,
XMLTokenMarker
.class);
64
TOKEN_MARKERS
.put(
CROSSFIRE_DIALOG
,
CrossfireDialogTokenMarker
.class);
65
TOKEN_MARKERS
.put(
DAIMONIN_AI
,
DaimoninAITokenMarker
.class);
66
}
67
71
private
TokenMarkerFactory
() {
72
}
73
79
@NotNull
80
public
static
TokenMarker
createTokenMarker
(@Nullable
final
File file) {
81
if
(file ==
null
) {
82
return
new
EmptyTokenMarker
();
83
}
84
85
final
String filename = file.getName();
86
final
int
dotIndex = filename.lastIndexOf(
'.'
);
87
if
(dotIndex == -1) {
88
return
new
EmptyTokenMarker
();
89
}
90
return
createTokenMarker
(filename.substring(dotIndex + 1));
91
}
92
98
@NotNull
99
public
static
TokenMarker
createTokenMarker
(@Nullable
final
String extension) {
100
if
(extension ==
null
) {
101
return
new
EmptyTokenMarker
();
102
}
103
104
final
Class<? extends TokenMarker> tokenMarkerClass =
TOKEN_MARKERS
.get(extension);
105
if
(tokenMarkerClass ==
null
) {
106
return
new
EmptyTokenMarker
();
107
}
108
try
{
109
return
tokenMarkerClass.newInstance();
110
}
catch
(
final
IllegalAccessException | InstantiationException ex) {
111
return
new
EmptyTokenMarker
();
112
}
113
}
114
115
}
net.sf.gridarta.textedit.textarea.tokenmarker.TokenMarkerFactory.TokenMarkerFactory
TokenMarkerFactory()
Definition:
TokenMarkerFactory.java:71
net.sf.gridarta.textedit.textarea.tokenmarker.TokenMarkerFactory.CROSSFIRE_DIALOG
static final String CROSSFIRE_DIALOG
Definition:
TokenMarkerFactory.java:38
net.sf.gridarta.textedit.textarea.tokenmarker.TokenMarkerFactory.createTokenMarker
static TokenMarker createTokenMarker(@Nullable final String extension)
Definition:
TokenMarkerFactory.java:99
net.sf.gridarta.textedit.textarea.tokenmarker.DaimoninAITokenMarker
Definition:
DaimoninAITokenMarker.java:39
net.sf.gridarta.textedit.textarea.tokenmarker.LuaTokenMarker
Definition:
LuaTokenMarker.java:27
net.sf.gridarta.textedit.textarea.tokenmarker.CrossfireDialogTokenMarker
Definition:
CrossfireDialogTokenMarker.java:30
net.sf.gridarta.textedit.textarea.tokenmarker.HTMLTokenMarker
Definition:
HTMLTokenMarker.java:22
net.sf.gridarta.textedit.textarea.tokenmarker.JavaScriptTokenMarker
Definition:
JavaScriptTokenMarker.java:19
net.sf.gridarta.textedit.textarea.tokenmarker.XMLTokenMarker
Definition:
XMLTokenMarker.java:17
net.sf.gridarta.textedit.textarea.tokenmarker.TokenMarkerFactory.DAIMONIN_AI
static final String DAIMONIN_AI
Definition:
TokenMarkerFactory.java:44
net.sf.gridarta.textedit.textarea.tokenmarker.PythonTokenMarker
Definition:
PythonTokenMarker.java:24
net.sf.gridarta.textedit.textarea.tokenmarker.TokenMarkerFactory.createTokenMarker
static TokenMarker createTokenMarker(@Nullable final File file)
Definition:
TokenMarkerFactory.java:80
net.sf.gridarta.textedit.textarea.tokenmarker.TokenMarkerFactory.TOKEN_MARKERS
static final Map< String, Class<? extends TokenMarker > > TOKEN_MARKERS
Definition:
TokenMarkerFactory.java:50
net.sf.gridarta.textedit.textarea.tokenmarker.TokenMarker
Definition:
TokenMarker.java:32
net.sf.gridarta.textedit.textarea.tokenmarker.TokenMarkerFactory
Definition:
TokenMarkerFactory.java:32
net.sf.gridarta.textedit.textarea.tokenmarker.EmptyTokenMarker
Definition:
EmptyTokenMarker.java:30
net.sf.gridarta.textedit.textarea.tokenmarker.CTokenMarker
Definition:
CTokenMarker.java:23
src
textedit
src
main
java
net
sf
gridarta
textedit
textarea
tokenmarker
TokenMarkerFactory.java
Generated by
1.8.17