Gyakorlati alapok II.

Külső (nem futárral hozott) csomagok importja: római-arab szám váltó II.

 

A Váltogassunk tovább: római-arab szám váltó I. című fejezet már bevezette az elméleti elemeket, illetve a sok közül az egyik implementációs megoldást. Most nézzünk meg egy, már megírt implementáció becsatlakoztatását!

 

Bár a római-arab számváltás nincs benne a Java-API-ban, ám tapasztalt programozók jól tudják, hogy az Interneten (majdnem) minden megtalálható. A RomanNumber kifejezésre szinte azonnal egy működőképesnek tűnő projekt bukkant fel: www.jodd.org. A honlap felkínált egy teljes RomanNumber nevű osztályt, amely tartalmaz római-arab, arab-római számváltót, sőt még egy validátor (ellenőrző) függvényt is. A csomag szabadon letölthető az oldalról (2016). A benne található osztályok eléréséhez először külső Java-csomagok importját kell megnéznünk:

 

1.

Töltsük le a .zip formátumba csomagolt csomagot a www.jodd.org oldalról. A MB terjedelmű csomag természetesen rengeteg további, rendkívül hasznos Java-rutint is tartalmaz.

 

2.

A letöltött csomagot csomagoljuk ki egy mappába. Nálam a célmappa ezen fejezet HTML gyűjtőmappája volt...

 

informatika_java_programozas_gyakorlat_2_szamvalto_2_elemei,

 

 ...amelynek jelenléte egyébiránt kötelező a HTML-oldalaknál:

 

www.informatika-programozas.hu

 

3.

A Package Explorer-ben kattintsunk jobb egér gombbal az aktuális projekt főmappájára, keressük meg a legalul lévő Properties opciót és kattintsuk rá (itt: Proba):

 

www.informatika-programozas.hu

 

4.

Hatására egy tovább ablak bukkan fel, amely a Proba nevű projekten érvényes, tehát projektszintű beállításokat kínál fel:

 

www.informatika-programozas.hu

 

5.

A sok lehetőség közül nekünk most a Java Build Path Libraries opció szükséges. Fent láthatjuk, hogy a Java alapértelmezett csomagkönyvtára (JRE System Library) már automatikusan becsatlakoztatásra került, ezért tudunk natívan nagyon sok Java-rutint elérni.

 

6.

Ide kell becsatlakoztatunk további, külső Java-rutinkönyvtárakat. Ehhez kattintsunk rá az Add External JARs opcióra, amely feldobja számítógépünk aktuális könyvtárszerkezetét. Itt kell megkeresnünk azt a tárolómappát, amibe a külső, kibontott Java-csomagot tettük:

 

www.informatika-programozas.hu

 

7.

A mappa megtalálása után észrevehetjük benne a bemásolt .jar állományt. Kattintsunk a jodd-3.7.jar fájlra és nyomjuk meg az OK gombot. Hatására a külső Java-rutingyűjteményt becsatlakoztattuk a projektbe:

 

www.informatika-programozas.hu

 

8.

Ezután a megfelelő rutinokat még importálnunk is kell az aktuális projektbe. Ehhez érdemes az elérhető dokumentációkat tanulmányozni. Kis böngészés után megtalálhatjuk az oldalon a fontos információkat:

 

jodd.org/api/jodd/format/RomanNumber.html

 

Az oldal szerint a RomanNumber osztály és metódusai a jodd.format csomagban vannak. Ezt kell tehát beimportálnunk a szabványos deklarációval (itt: import jodd.format.*;):

 

A RomanNumber osztály példányosítása után (RomanNumber rn = new RomanNumber()) elérhetjük és felhasználhatjuk az osztály 3 db publikált metódusát:

Nézzük meg a futtatható Java-kódot!

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

import jodd.format.*;

public class Main {
public static void main(String args[]) {
    RomanNumber rn = new RomanNumber();
    String szamRomai = rn.convertToRoman(14);
    int szamArab = rn.convertToArabic("XIV");

    System.out.println(szamRomai);
    System.out.println(szamArab);
    }
}

 

Végeredmény:

XIV

14

 

A fentieket egészítsük ki a validátor függvénnyel (isValidRomanNumber()):

 

www.informatika-programozas.hu - Futtatható Java-kód!

 

 

 

 

 

 

 

 

import jodd.format.*;

public class Main {
public static void main(String args[]) {
    RomanNumber rn = new RomanNumber();
    String szamRomai = rn.convertToRoman(14);
    int szamArab = rn.convertToArabic("XIV");

    System.out.println(szamRomai);
    System.out.println(szamArab);

    System.out.println(rn.isValidRomanNumber("MMMM"));
    }
}

 

Végeredmény:

XIV

14

true

 

A római szám ellenőrző függvény nagyobbrészt pontos, a bevitt római számok érvényességét jól validálja, de sajnos nem 100 %-os biztonsággal. Például az MMMM nem megengedett, hiszen a legnagyobb (hivatalos) római szám a MMMCMXCIX = 3999 lehet, a fenti példában mégis látható, hogy a függvény érvényesnek értékeli (true).

 

Kis, további matatással felfedezhetjük, hogy a letöltött állomány nemcsak .jar fájlokat, hanem ezek publikált forráskódjait is tartalmazza.

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Bár sok ilyen jellegű, azaz ingyenesen letölthető anyag áll rendelkezésre, ám felhasználásuk legtöbbször szerzői jogi szempontból mégis szigorúan szabályozott. Tehát ingyenessége nem jelenti azt, hogy azt csinálunk vele, amit akarunk. A jogi viták elkerülése végett érdemes az állományhoz mellékelt szerzői jogi záradékot tanulmányozni, amely csatolást egyébiránt mindig megtesznek (általában License néven).