Class ArgumentList
- java.lang.Object
-
- de.bsvrz.sys.funclib.commandLineArgs.ArgumentList
-
public class ArgumentList extends java.lang.Object
Klasse zum Zugriff auf die Aufrufargumente einer Applikation. Eine Applikation bekommt die Aufrufargumente von der Laufzeitumgebung in einem String-Array als Parameter dermain
-Funktion übergeben. Dieses String-Array wird dem Konstruktor dieser Klasse übergeben. Mit der MethodefetchArgument(java.lang.String)
kann auf die einzelnen Argumente zugegriffen werden. Beim Zugriff auf ein Argument wird der entsprechende Eintrag im String-Array aufnull
gesetzt. Nach dem Zugriff auf alle von einer Applikation unterstützten Argumente kann mit der MethodeensureAllArgumentsUsed()
sichergestellt werden, daß alle angegebenen Argumente verwendet wurden.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ArgumentList.Argument
Klasse zum Zugriff auf Name und Wert eines Aufrufarguments.static class
ArgumentList.ValueCase
static class
ArgumentList.ValueSelection
-
Constructor Summary
Constructors Constructor Description ArgumentList(java.lang.String[] argumentStrings)
Erzeugt eine neue Argumentliste und initialisiert diese mit den übergebenen Aufrufargumenten der Applikation.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
ensureAllArgumentsUsed()
Diese Methode stellt sicher, daß alle Argumente interpretiert wurden.ArgumentList.Argument
fetchArgument(java.lang.String nameAndOptionalDefault)
Liefert ein bestimmtes Argument zurück und setzt es im String-Array, das beim Konstruktor übergeben wurde, aufnull
.ArgumentList.Argument
fetchNextArgument()
Liefert das erste noch nicht interpretierte Argument zurück und setzt es im String-Array, das beim Konstruktor übergeben wurde, aufnull
.ArgumentList.Argument[]
fetchUnusedArguments()
Liefert ein Feld mit den noch nicht ausgewerteten Argumenten der Aufrufliste zurück und setzt die entsprechenden Einträge im String-Array, das beim Konstruktor übergeben wurde, aufnull
.java.lang.String[]
getArgumentStrings()
Liefert das String-Array mit den noch nicht interpretierten Aufrufargumenten der Applikation zurück.java.lang.String[]
getInitialArgumentStrings()
Liefert das String-Array mit den initialen Aufrufargumenten der Applikation zurück.java.lang.String
getNextArgumentName()
Liefert den Namen des nächsten noch nicht interpretierten Arguments zurück.int
getUnusedArgumentCount()
Bestimmt die Anzahl der in der Argumentliste noch vorhandenen und nicht ausgewerteten Argumente.boolean
hasArgument(java.lang.String name)
Prüft, ob ein bestimmtes Argument vorhanden ist und noch nicht interpretiert wurde.boolean
hasUnusedArguments()
Bestimmt, ob in der Argumentliste noch Argumente existieren, die noch nicht ausgewertet wurden.static void
main(java.lang.String[] args)
Hauptfunktion zum Test einzelner Methodenjava.lang.String
toString()
Liefert eine textuelle Beschreibung dieser Argumentliste mit den initialen Argumenten zurück.
-
-
-
Constructor Detail
-
ArgumentList
public ArgumentList(java.lang.String[] argumentStrings)
Erzeugt eine neue Argumentliste und initialisiert diese mit den übergebenen Aufrufargumenten der Applikation. Einzelne Argumente, die von der Applikation bereits interpretiert wurden, sollten vorher auf den Wertnull
gesetzt werden, damit sie nicht nochmal interpretiert werden.- Parameters:
argumentStrings
- String-Array, das die Aufrufargumente enthält, die der Applikation beim Aufruf der main-Funktion übergeben werden.
-
-
Method Detail
-
main
public static void main(java.lang.String[] args)
Hauptfunktion zum Test einzelner Methoden
-
fetchArgument
public ArgumentList.Argument fetchArgument(java.lang.String nameAndOptionalDefault)
Liefert ein bestimmtes Argument zurück und setzt es im String-Array, das beim Konstruktor übergeben wurde, aufnull
. Im übergebenen Parameter der Funktion wird der Name des Arguments und bei Bedarf (durch ein Gleich-Zeichen getrennt) ein Default-Wert angegeben. Die Aufrufargumente müssen dem Format "argumentName=argumentWert" entsprechen: Beim Zugriff auf ein Argument muss der Argument-Name angegeben werden. Ergebnis des Zugriffs ist ein Objekt der KlasseArgumentList.Argument
über das der Wert des Arguments abgefragt werden kann. Wenn das gewünschte Argument in der Argumentliste gefunden wurde, wird der entsprechende Eintrag im String-Array, das demKonstruktor
übergeben wurde, auf den Wertnull
gesetzt. Wenn auf ein Argument zugegriffen wird, das in der Argumentlist nicht mehr vorhanden ist, weil es bereits vorher interpretiert wurde, dann wird der entsprechende Wert aus der initialen Argumentliste erneut zurückgegeben. Wenn auf ein Argument zugegriffen wird, das in der initialen Argumentliste nicht vorhanden ist, wird als Wert der Default-Wert benutzt, wenn dieser im Parameter der Methode (durch ein Gleichzeichen vom Argumentnamen getrennt) angegeben wurde. Wenn das gewünschte Argument nicht in der Argumentliste enthalten ist und kein Default-Wert angegeben wurde, wird eine Ausnahme generiert.- Parameters:
nameAndOptionalDefault
- Name des gewünschten Arguments und optional durch ein Gleichzeichen getrennt der Default-Wert des Arguments.- Returns:
- Ein Argument-Objekt über das mit verschiedenen Methoden auf den Wert des Arguments zugegriffen werden kann.
- Throws:
java.lang.IllegalArgumentException
- Wenn kein Wert für das gewünschte Argument ermittelt werden konnte.
-
hasArgument
public boolean hasArgument(java.lang.String name)
Prüft, ob ein bestimmtes Argument vorhanden ist und noch nicht interpretiert wurde.- Parameters:
name
- Name des gesuchten Arguments.- Returns:
true
Wenn das gesuchte Argument in der Argumentliste enthalten ist und noch nicht interpretiert wurde, sonstfalse
.
-
ensureAllArgumentsUsed
public void ensureAllArgumentsUsed()
Diese Methode stellt sicher, daß alle Argumente interpretiert wurden.- Throws:
java.lang.IllegalStateException
- Wenn in der Argumentliste noch nicht ausgewertete Argumente enthalten sind.
-
hasUnusedArguments
public boolean hasUnusedArguments()
Bestimmt, ob in der Argumentliste noch Argumente existieren, die noch nicht ausgewertet wurden.- Returns:
true
, falls weitere Argumente existieren;false
, falls alle Argumente ausgewertet wurden.
-
getNextArgumentName
public java.lang.String getNextArgumentName()
Liefert den Namen des nächsten noch nicht interpretierten Arguments zurück.- Returns:
- Name des nächsten noch nicht interpretierten Arguments.
- Throws:
java.lang.IllegalStateException
- Wenn bereits alle Argumente interpretiert wurden.
-
fetchNextArgument
public ArgumentList.Argument fetchNextArgument()
Liefert das erste noch nicht interpretierte Argument zurück und setzt es im String-Array, das beim Konstruktor übergeben wurde, aufnull
. Die Aufrufargumente müssen dem Format "argumentName=argumentWert" entsprechen: Beim Zugriff auf ein Argument muss der Argument-Name angegeben werden. Ergebnis des Zugriffs ist ein Objekt der KlasseArgumentList.Argument
über das der Wert des Arguments abgefragt werden kann. Für Argumente die kein Gleichzeichen mit folgendem argumentWert enthalten, wird als Wert der Text "wahr" angenommen. Der entsprechende Eintrag im String-Array, das demKonstruktor
übergeben wurde, wird auf den Wertnull
gesetzt. Wenn in der Argumentliste kein Argument mehr enthalten war, wird eine Ausnahme generiert.- Returns:
- Ein Argument-Objekt über das mit verschiedenen Methoden auf den Wert des Arguments zugegriffen werden kann.
- Throws:
java.lang.IllegalStateException
- Wenn bereits alle Argumente interpretiert wurden.
-
getUnusedArgumentCount
public int getUnusedArgumentCount()
Bestimmt die Anzahl der in der Argumentliste noch vorhandenen und nicht ausgewerteten Argumente.- Returns:
- Anzahl noch nicht ausgewerteten Argumente in der Argumentliste.
-
fetchUnusedArguments
public ArgumentList.Argument[] fetchUnusedArguments()
Liefert ein Feld mit den noch nicht ausgewerteten Argumenten der Aufrufliste zurück und setzt die entsprechenden Einträge im String-Array, das beim Konstruktor übergeben wurde, aufnull
.- Returns:
- Feld mit Argument-Objekten der noch nicht ausgewerteten Argumente.
-
getArgumentStrings
public java.lang.String[] getArgumentStrings()
Liefert das String-Array mit den noch nicht interpretierten Aufrufargumenten der Applikation zurück. Das zurückgegebene Objekt ist das selbe Objekt mit dem der Konstruktor aufgerufen wurde, allerdings ist zu beachten, dass die Elemente des Arrays, die bereits mit den MethodenfetchArgument(java.lang.String)
bzw.fetchNextArgument()
interpretiert wurden, im Array aufnull
gesetzt wurden.- Returns:
- Das String-Array mit den noch nicht interpretierten Aufrufargumenten der Applikation.
-
getInitialArgumentStrings
public java.lang.String[] getInitialArgumentStrings()
Liefert das String-Array mit den initialen Aufrufargumenten der Applikation zurück. Das zurückgegebene Array enthält die selben Aufrufargumente die dem Konstruktor übergeben wurden.- Returns:
- Das String-Array mit den initialen Aufrufargumenten der Applikation.
-
toString
public java.lang.String toString()
Liefert eine textuelle Beschreibung dieser Argumentliste mit den initialen Argumenten zurück. Das genaue Format ist nicht festgelegt und kann sich ändern.- Overrides:
toString
in classjava.lang.Object
- Returns:
- Beschreibung dieser Argumentliste.
-
-