xesj.args
Tartalomjegyzék
alapok
-
Ha egy java program nem kap a felhasználótól argumentumot, akkor a main() metódus args
paramétere egy 0 elemű tömb lesz!
-
A xesj.args package abban az esetben használható, ha a program argumentumokra a következők érvényesek:
-
Az argumentumok megadása név-érték párokként történik:
-
Egy argumentumnév csak egyszer szerepelhet.
-
Az argumentum név-érték párok sorrendje tetszőleges lehet.
-
Nem adható meg olyan argumentum név melyre nincs szabály.
-
Az argumentum név-érték párok elválasztása az első egyenlőségjelnél történik,
tehát ebben a példában az argumentumnév "a", az érték pedig "b=c=d"
-
Ha a felhasználó segítséget szeretne kapni az argumentumok használatáról,
egyetlen kérdőjel argumentummal indítja a programot.
-
Lebegőpontos számok megadásánál a tizedesjel a pont.
-
Ha egy argumentumnév, és utána az egyenlőségjel meg van adva,
akkor az argumentum már teljesíti a kötelezőség feltételét.
Például itt a "naplo" argumentum meg van adva, és értéke üres string:
ArgumentException
-
Csak az ArgumentHandler.check() metódusa válthatja ki.
-
Kizárólag a hibásan összeállított program argumentumok esetén váltódik ki.
ArgumentHandler
-
Használat sorrendje:
- ArgumentHandler osztály példányosítása.
- Argumentum szabályok hozzáadása az addRule() metódussal.
-
Program argumentumok ellenőrzése a check() metódussal.
Ha az ellenőrzés során HelpException keletkezett akkor, akkor segítség-szöveg kiírása a
help() metódussal.
Ha az ellenőrzés során ArgumentException keletkezett, akkor az argumentum hiba kiírása.
-
A konvertált argumentum értékek lekérdezése a getXXX() metódusokkal, ha a check() metódus nem talált hibát.
-
help() metódus:
Olyan sorrendben adja vissza a segítség-szöveget az argumentum szabályokról, ahogy a szabályok az addRule()
metódusnál meg voltak adva.
ArgumentRule
-
Lehetséges argumentum típusok, vagyis ilyen típusra lehet konvertálni a kapott string típusú argumentum értéket:
- String.class
- Integer.class
- Long.class
- Double.class
- BigInteger.class
- BigDecimal.class
- Date.class
- Boolean.class
-
Date argumentum típusnál szükséges a datePattern() metódus meghívása, a dátum formátum definiálásához,
konverzióhoz.
-
Boolean argumentum típusnál szükséges a trueValues(), falseValues() metódusok közül
legalább az egyiknek a meghívása,
hogy egy string argumentum értéket igaz vagy hamis boolean értékre lehessen konvertálni.
Ennél a típusnál az enabledValues() metódus nem hívható.
-
enabledValues() metódus:
Azt határozza meg, hogy egy megadott argumentum névhez milyen argumentum értékek rendelhetők.
Ezen kívűl az argumentum lehet null is ha nincs megadva!
HelpException
-
Csak az ArgumentHandler.check() metódusa válthatja ki.
-
Akkor váltódik ki, ha a program egyetlen kérdőjel argumentummal lett elindítva,
jelezve hogy a felhasználó a lehetséges argumentumokról szeretne információkat kapni.
példa
-
Példa 3 argumentum bekérésére, és a lehetséges helyzetek lekezelésére:
-
A program indítása helyes a következő argumentumokkal:
-
A program indítása hibás, mivel a kötelező "rekord" argumentum nincs megadva, és nincs default érték sem definiálva: