public class ArgumentParser
extends java.lang.Object
Erzeuge innerhalb deiner ausfuehrbaren Klasse eine Instanz dieser Klasse und uebergib im Konstruktor die Kommandozeilenargumente. Verwende diesen ArgumentParser um auf Kommandozeilen Parameter zu reagieren.
Kommandozeilen Parameter sind entweder Schalter oder Einstellungen.
Ein Schalter ist entweder ein- oder ausgeschaltet. Dementsprechend kann sein Zustand in einem boolean
abgelegt werden. Schalter sind zu Beginn ausgeschaltet. Ein Schalter wird ueber den Parameter --SCHALTERNAME
aktiviert. Ein Schalter kann ueber Kommandozeilen Parameter nicht deaktiviert werden, da er zu Beginn ohnehin
deaktiviert ist.
Eine Einstellung hat einen Namen und einen Wert. Ein gutes Beispiel ist hier die Spielfeldgroesse. Der Name dieser
Einstellung ist size
und der Wert kann eine Zahl zwischen 6
und 26
sein. Der Typ einer
Einstellung richtet sich nach der Einstellung. Die Einstellung size
zum Beispiel ist ein int
.
Einstellungen werden auf der Kommandozeile mit -NAME WERT
gesetzt.
Wird ein Schalter oder eine Einstellung abgefragt die nicht eingelesen wurde, wird eine ArgumentParserException
geworfen, auf die sinnvoll reagiert werden muss.
Alle Schalter und Einstellungen in dieser Klasse duerfen nicht geaendert werden. Es ist jedoch erlaubt weitere Schalter oder Einstellungen hinzuzufuegen, dies ist im Quellcode kenntlich gemacht.
Modifier and Type | Field and Description |
---|---|
private java.util.HashMap<java.lang.String,java.lang.Object> |
params
Map zur Speicherung der Parameter
|
Constructor and Description |
---|
ArgumentParser(java.lang.String[] args)
Erzeuge einen neuen ArgumentParser aus einem String-Array mit Parametern.
|
Modifier and Type | Method and Description |
---|---|
private void |
addFlag(java.lang.String flag)
Fuege einen Schalter hinzu.
|
private void |
addSetting(java.lang.String key,
java.lang.String value)
Fuege eine Einstellung hinzu.
|
PlayerType |
getBlue() |
int |
getDelay() |
protected boolean |
getFlag(java.lang.String flag)
Gib den Wert eines Schalters zurueck.
|
PlayerType |
getRed() |
protected java.lang.Object |
getSetting(java.lang.String key)
Gib den Wert einer Einstellung als
Object zurueck. |
int |
getSize() |
boolean |
isDebug() |
boolean |
isSet(java.lang.String parameter)
Pruefe ob ein Parameter gesetzt ist.
|
private void |
parseArgs(java.lang.String[] args)
Parse die Argumente.
|
protected PlayerType |
parsePlayerType(java.lang.String type)
Interpretiere einen Spielertypen
|
private java.util.HashMap<java.lang.String,java.lang.Object> params
public ArgumentParser(java.lang.String[] args) throws ArgumentParserException
args
Argument der main
-Methode weitergerreicht werden.args
- ArgumenteArgumentParserException
- wenn das Parsen der Argumente fehlschlaegtprivate void parseArgs(java.lang.String[] args) throws ArgumentParserException
args
- ArgumenteArgumentParserException
- wenn das Parsen der Argumente fehlschlaegtprivate void addFlag(java.lang.String flag) throws ArgumentParserException
flag
- SchalteArgumentParserException
- wenn der Schalter nicht existiertprivate void addSetting(java.lang.String key, java.lang.String value) throws ArgumentParserException
key
- Namevalue
- WertArgumentParserException
- wenn die Einstellung nicht existiert oder der Wert ein ungueltiges Format hatpublic boolean isSet(java.lang.String parameter)
parameter
- Zu pruefender Parameterprotected boolean getFlag(java.lang.String flag) throws ArgumentParserException
flag
- Name des SchaltersArgumentParserException
- wenn der Schalter den falschen Typ hat (falls eine Einstellung versucht wird als Schalter auszulesen)protected java.lang.Object getSetting(java.lang.String key) throws ArgumentParserException
Object
zurueck.key
- Name der EinstellungObject
.ArgumentParserException
- wenn die Einstellung nicht existiertprotected PlayerType parsePlayerType(java.lang.String type) throws ArgumentParserException
type
- Eingelesener TypPlayerType
ArgumentParserException
- wenn der eingelese Typ nicht passtpublic int getSize() throws ArgumentParserException
ArgumentParserException
public PlayerType getRed() throws ArgumentParserException
ArgumentParserException
public PlayerType getBlue() throws ArgumentParserException
ArgumentParserException
public int getDelay() throws ArgumentParserException
ArgumentParserException
public boolean isDebug() throws ArgumentParserException
ArgumentParserException