- Képeken az egyik kameráját elvesztő Sony Xperia 10 VI
- Apple iPhone 15 Pro Max - Attack on Titan
- Bemutatkozott a Moto G32 4G
- Honor Magic6 Pro - kör közepén számok
- Xiaomi Mi 10T Pro - a házon belüli ellenfél
- iPhone topik
- Ezek a OnePlus 12 és 12R európai árai
- Egyre közelebb a Poco F6 startja
- Vodafone mobilszolgáltatások
- Yettel topik
Hirdetés
-
Letartóztatták a bitcoin-Jézust
it Amerikai adókerülés vádjával, Spanyolországban tartóztatták le a bitcoin-Jézusként ismert Roger Vert.
-
Spyra: akkus, nagynyomású, automata vízipuska
lo Type-C port, egy töltéssel 2200 lövés, több, mint 2 kg-os súly, automata víz felszívás... Start the epic! :)
-
Mindent megtudtunk az új Nokia 3210-ről
ma Részletes képek, specifikációk és euróban megadott ár is van a legendás modell újraélesztett verziójához.
Új hozzászólás Aktív témák
-
PumpkinSeed
addikt
Van két osztályom egy bútor és egy bútorlap. A bútorlap három adattaggal dolgozik. A bútor kettővel és az egyiknek bútorlap adattípusa van és egy tömb. A bútorlap osztályban van egy árSzámol() metódus ami hát kiszámolja a bútorlap árát. A bútor-ban tárolva vannak a bútorlapok a tömbben és hogyan tudom meghívni a bútorlapban lévő árSzámol metódust, hogy azt egy sum változóhoz minden for ciklus iterációban visszaadja. Eddig jutottam.
public int arSzamol(){
int sum = 0;
for(int i=0; i < butor.length;i++){
sum = sum + butor[i].arSzamol();
}
return sum;
}"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
Ursache
senior tag
válasz PumpkinSeed #6951 üzenetére
Most lehet nem jól értelmezem a kérdést, de egyszerűen definiálsz egy public int árSzámol() {} eljárást a bútorlap osztályban, és a tömbön végigiterálsz, ahogy csinálod is ( gondolom az a bútor osztályodban lévő árSzámol() ), és csak egyszerűen hívogatod az árSzámol() eljárást minden bútorlapra.
https://www.youtube.com/watch?v=eIri9YLHpOg
-
WonderCSabo
félisten
válasz PumpkinSeed #6953 üzenetére
Ha jól látom azért kapsz NPE-t, mert a butor tömbben null-ok csücsülnek. A hozzaAd metódusban csak az utolsó elem lesz nem null, a többi mind null marad. Ezt megoldhatnád úgy, hogy kezdetben 0 méretű tömböt készítesz:
this.butor = new butorlap[0];
-
PumpkinSeed
addikt
válasz WonderCSabo #6954 üzenetére
Így működik köszönöm. A feladatban így kellett meghatározni a tömböt, csak én máshogy csináltam meg a hozzaAd metódust és elfeledkeztem róla.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
Ursache
senior tag
válasz PumpkinSeed #6955 üzenetére
Csak egy megjegyzes: konvencio, hogy a final kulcsszoval ellatott konstansok neveit csupa nagybetukkel kell irni.
Tovabba gondolom a boolean tipus parameter donti el az eljarason belul, hogy most tartolaprol avagy hatlaprol van-e szo. Erre enum-ot hasznalj.
+ az osztalyok nevei mindig nahybetuvel kezdodnek, ahogyan a kollega is irja.
Ezek talan a legszembetunoek. Olvass utana a clean coding-nak es a konvencioknak. Nem csak masoknak, hanem magadon is segitesz ezzel.
[ Szerkesztve ]
https://www.youtube.com/watch?v=eIri9YLHpOg
-
PumpkinSeed
addikt
-
Ursache
senior tag
válasz PumpkinSeed #6958 üzenetére
Az a konyv tokeletes!
Ez enum pont az ilyen fajta problemakra ad megoldast. Nem nehez megerteni, megtanulni. Nekem is volt, hogy boolean-okkal, aztan amikor kettonel tobb allapotot kellett leirnom, akkor int-ekkel heggesztettem. A boolean nem erre valo, az int sem kifejezetten, azt meg akar hibakodora lehet, de allapot leirasokra, meg ilyen jellegu problemakra enum. Hajra!
https://www.youtube.com/watch?v=eIri9YLHpOg
-
nagyúr
Sziasztok! Tudom, hogy kicsit gyökér kérdés, de hogy a pitlibe tudok egy jar filet futtani win8.1-en? Eclipseben megírtam az alkalmazást, sima java projectként. Utána exportáltam jar fileként. No ha erre a filera kattintok nem történik semmi Pedig ha az eclipseből futtatom akkor működik az alkalmazás tökéletesen.szerk.: én voltam a gyökér, nem futtatható jar filet csináltam
[ Szerkesztve ]
-
#92700160
törölt tag
Sziasztok!
Elég topichatáron mozog a kérdésem, lehet nem ez a legmegfelelőbb hely rá.
Szóval van egy C2D t5750 (2ghz dual core, 2mb l2 cache), 2 gb ddr2 rammal. Namost kedves netbeans szereti a ramot. Elég sokszor produkál random halálokat, ilyen 1-3 mp-re megáll az élet, meg amikor background projecteket scannel, eléggé unresponsive lesz a gép.
Namost 5 hónapja kezdtem a javát, szóval nem fogok trillio .java-t buildelni, az még odébb van.
Ha bővítek ramot, az megoldaná a problémákat, vagy cpu lesz a szűk keresztmetszet, és inkább ne költsek erre a laptopra és vegyek új konfigot, amikor lesz rá keret?
-
Sk8erPeter
nagyúr
válasz #92700160 #6963 üzenetére
Nem egy mai csirke az a gép, egy SSD beszerzése, és némi RAM-bővítés egészen biztos, hogy dobni fog a felhasználói élményen, már ha nem érné meg új gépet venni. Az SSD-nek persze van egy olyan előnye, hogy azt át tudod vinni másik gépbe is, tehát az mindenképpen megérné. Tapasztalatból tudom, milyen ugyanaz a gép, amikor HDD-n van minden, és elindítod a NetBeans-t vagy Eclipse-et rengeteg megnyitott projekttel, és milyen az, amikor átkerül az egész SSD-re, brutális a különbség utóbbi javára, jópár hajszállal több marad a fejeden. Ilyenkor az elején ugye végigfutkorászik a projekteken, nem mindegy, milyen olvasási sebességgel kotorászik (meg hát nyilván az írási sebesség sem mindegy).
Egyébként tényleg eléggé OFF-topic.Sk8erPeter
-
RexpecT
addikt
Sziasztok!
Van egy service progim, ami időnként meghívódik és megnézi hogy az aktuális idő később van-e mint egy fájlban letárolt dátum + intervallum millisecundumban.
Ez mind szép és jó, de van egy évben 1-1 nap mikor 23 illetve 25 órás egy nap. Ilyenkor a program egy órával hamarabb vagy később fut le. Ettől tudtok szebb/jobb/okosabb megoldást, hogy az intervallumot eltoljam?
public int change(Date today, Date yesterday){
Calendar todayCal = Calendar.getInstance();
todayCal.setTime(today);
Calendar yesterdayCal = Calendar.getInstance();
yesterdayCal.setTime(yesterday);
boolean todayInDayLightTime = todayCal.getTimeZone().inDaylightTime(today);
boolean yesterdayInDayLightTime = yesterdayCal.getTimeZone().inDaylightTime(yesterday);
System.out.println("Yesterday DaylightTime: " + (yesterdayInDayLightTime==true?"Nyari idoszamitas":"Teli idoszamitas"));
System.out.println("Today DaylightTime: " + (todayInDayLightTime==true?"Nyari idoszamitas":"Teli idoszamitas"));
if(yesterdayInDayLightTime == true && todayInDayLightTime == false){
System.out.println("Óra visszallitas -3600");
return -3600;
}
else if(yesterdayInDayLightTime == false && todayInDayLightTime == true){
System.out.println("Óra eloreallitas +3600");
return +3600;
}
else{
System.out.println("Nem történt oraatallitas!");
return 0;
}
}[ Szerkesztve ]
-
axioma
veterán
válasz RexpecT #6966 üzenetére
En lehet hogy forditva csinalnam... nem kovetkeztetni a hossz modositasara, hanem az aktualis datumot visszabontani datumra es idore, datumbol 1 levon (az mar csak egyszerubb, me'g ha honaphataron is van), az idovel egyutt vissza long-ra, es az a tartomany eleje. Ha jol ertem, hogy mit akarsz csinalni (azaz a mai 7:00am lefuttataskor az a lenyeg, hogy a tegnapi - helyi ido szerinti - 7:00am ota eltelt idoszakba beleesest akarod tesztelni).
-
RexpecT
addikt
A két paraméter amit átadok az aktuális futási időpontot tartalmazó Date Object, illetve a legutóbbi futási időt tartalmazó Date.
Jelen pillanatban naponta 1× kell futnia a proginak, amit úgy nézek meg, hogy az előző futásidőhöz hozzáadok 86400 *1000 millisecet. Ha az így előállt Date utána van a futáskor létrehozott Datenek akkor lefut egy metódus.
Itt csak az a baj, hogy ha 23 óra egy nap akkor (86400-3600)*1000 millisecet kellene hozzáadnom, ha pedig 25 óra egy nap akkor (86400+3600)*1000 millisecet kell hozzáadnom az előző futási időhöz.( mert egyébként +/- 1 órával változni fog a futáskori idő).
-
axioma
veterán
válasz RexpecT #6969 üzenetére
1. ha csak napi 1x kell akkor nem tok mind1, hogy telen 7-kor nyaron 6-kor?
2. ha nem mindegy, akkor is ugy csinalnam, hogy utolso futasi idohoz az altalam irt modon adok 1 napot, es ahhoz hasonlitok -- mert ez fgtl attol, hogy esetleg milyen egyeb valtoztatasok lesznek a naptarban (en ugy 30 evvel ezelott gyerekkent az azt hiszem Furkesz c. gyerekmusorban lattam a jovo naptarat, amit mar akkor jelentos mennyisegu orszag elfogadott, ehhez kepest arrol sincs azota se semmi -- a munkaltatok es konyvelok a'lma, minden negyedev tok azonos 31-30-30 honapokkal es mindig hetfovel kezdodik stb.)
3. a daylight saving ma mar a jelentos mernoki munka miatt amit az ilyen esetekre koltenek mar ossztarsadalmilag boven negativ egyenlegu... -
Szmeby
tag
válasz RexpecT #6966 üzenetére
DateTime now = new DateTime();
DateTime tomorrow = now.plusDays(1);
if (tomorrow.isAfter(now)) {
doIt();
}java.util.Date típusra ide-oda tud konvertálni is, ha szükséged van rá.
Vagy ha nem bírod a 3rd party librarykat, akkor java8 LocalDateTime?
LocalDateTime.from(new Date().toInstant()).plusDays(1);
Rengeteget szívhatsz a másodpercek babrálásával. Az, hogy 1 óra 3600 másodperc, pont annyira igaz, mint hogy egy év 365 nap... vagy mint fentebb, hogy 1 nap 24 óra. Általában igaz, kivéve a kivételek esetén.
A daylight-savig csak egy a sok hülyeség közül. Vannak szökőévek, elcsalt másodpercek, időzónák, saját elcseszett DLS megoldásokkal, borzalom.
Javaslom a jodát, hasznos kis eszköz. -
PumpkinSeed
addikt
Olyan kérdésem lenne, hogy adott egy Konyvtar osztály és egy Konyv osztály. A Konyv osztályban vannak szerző, cím stb. adattagok. A Konyvtar-ban a Konyv[] típusú tömbben tárolódnak a könyvek. A feladat az, hogy ha van két példányosított könyvtáram akkor tudjanak egymás között könyveket cserélni. Hogy lehet ezt megoldani? Elméletben hogyan csinálnátok meg? Semmi ötletem sincs, nem értem hogy tud két példány kommunikálni egymással.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
Aethelstone
addikt
válasz PumpkinSeed #6973 üzenetére
Elvileg...
Az a lényeg, hogy ha minden könyvtár adhat mindenkinek, akkor legyen referencia első körben minden könyvtárhoz minden könyvtárban.
Aztán legyen minden könyvtárnak egy kap metódusa, amivel a könyvtár könyvet kap, visszatérési értékként meg egy másik könyv, amit ad érte.
Aztán minden könyvtárnak legyen egy ad metódusa, amivel könyvet ad. Ez a metódus hívja meg a másik könyvtár kap metódusát, a visszatérési könyvet meg berakja a saját könyvei közé.
Kb.
Persze, ha tömb (inkább valami lista), akkor nyilván figyelni kell olyasmikre, hogy amelyik könyvet adja, annak a helyére kerüljön az, amit kap...stb.
MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...
-
PumpkinSeed
addikt
válasz Aethelstone #6974 üzenetére
Gyakorlatban itt a kód, hogy lehet ezeket a referenciákat megoldani? Még nem halottam róluk.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
Ursache
senior tag
válasz PumpkinSeed #6975 üzenetére
List<Integer> lista1 = new ArrayList<>(); <- létrehoz egy lista objektumot a memóriában, majd ráállít egy referenciát lista1 néven, amelyen keresztül el tudod érni a lista objektumot.
List<Integer> lista2 = lista1; <- nem hoz létre egy új listát (sem egy vadonatújat, sem egy újat a lista1 elemeivel feltöltve), hanem az előzőleg létrehozott lista objektumra létrehoz még 1 referenciát, így két referenciád mutat a memória egyazon területére.
Konklúzió: bármelyik referencián keresztül is módosítod az objektumot, az a másik referencián keresztül is "látszódni" fog.
https://www.youtube.com/watch?v=eIri9YLHpOg
-
PumpkinSeed
addikt
-
bucsupeti
senior tag
válasz PumpkinSeed #6973 üzenetére
én csinalnek efy diszpecser osztalyt ahova be lehet regisztralni a konyvtar objektumokat valamilyen konténerben tarolva:
List<Konyvtar> konvtarak = new ArrayList()
Ennek a diszpecser osztalynak lenne egy swapBooks() metodusa ami lezongorazna a cseret ugy hogy a konyvtarak sajat metodusait hivogatna.
A Konyvtar osztalynak a cseret metodusokkal kell tamogatnia. Tudni kell kezdemenyezni a cseret, valaszolni egy csere kerelemre befogadni a cserebe kapott konyvet, kiadni a cserebe adott konyvet.
a cseret a diszpecser osztaly bonyolitja le akinek a szabalyait elfogadja minden regisztralo konyvtar. ezzel biztosithato hogy a cserek "becsuletesen" fognak lezajlani.
a pelda kapcsan inkabb az oo elvek megertesere alkalmazasara torekedj ugyanis az a lenyege ennek a feladatnak. ha nagyon profi akarsz lenni akkor tervezesi mintakat is bele lehet szoni...
"Nem gond ha nem vágod a párologtatók bináris nyelvét..."
-
jetarko
csendes tag
Hogyan lehet levizsgálni azt h pl 10 táblán keresztül legyen egy érték unique?
Pl: minden táblában van e-mail, de mindenhol unique-nak kell lennie az egész db-t nézve.
Jelenleg úgy oldottam meg, hogy minden dao-nál az addNewXY esetén levizsgálom az összes táblát, hogy van-e ilyen érték és ha igen dobok egy exceptiont. UpdateXY esetén ugyanez csak ott ha már van ilyen vizsgálom, hogy ahhoz tartozik-e aki updatel. Ez 10 külön dao-nál elég macerás, és ha jön egy 11. akkor mindenhol bővíthetem.Másik: Ha olyan adatot akarok lementeni ami db szigorítás szerint nem valid, pl unique, akkor kapok egy ConstraintViolationException-t, de ebből nem tudom kitalálni, hogy konkrétan mire kaptam ezt az exceptiont.
Olyan adatot nem engedek el db szintig amit validatorral kitudok szűrni, de ez nem minden.Ezekre mi a best practice?
-
-
-
thon73
tag
A Long Object "lebutítását" csak így tudtam megoldani:
Object result = getLongValue();
result = (long) result & (long) Character.MAX_VALUE;Működni működik, csak nem tűnik túl szépnek.
Viszont egy lépéssel később megint elakadtam. A "lebutított" értéket át is szeretném pakolni egy másik wrapper osztályba. ((Egy univerzális feldolgozó Object-ként kapja meg az értékeket ((Long a numerikus és String a Stringek számára), és különböző átalakítások, ellenőrzések után ezt kellene visszaadnia, csak éppen a kívánt méretnek megfelelő wrapper osztályba helyezve. Pl. Objekctként numerikus Long érték -> Objectként numerikus Character érték.))
Hogyan tudok egy Objectet, ami bizonyosan egy Long értéket tartalmaz, a lehető legegyszerűbben egy olyan Object-té alakítani, ami Character-t tartalmaz? ((A fordító vagy feleslegesnek látja a próbálkozásaimat, vagy hibaüzenetekkel bombáz.))
-
thon73
tag
Bocsánat, hogy magamnak válaszolok, de időközben végül egy próbaprogrammal megfejtettem:
Object longobject = 0x0102030405060708L;
long longprimitive = (long)longobject;
// char charprimitive = (char)longobject; -> exception
// int intprimitive = (int)longobject; -> exception
char charprimitive = (char)(long)longobject;
int intprimitive = (int)(long)longobject;
// Character charobject = (Character)longobject; -> exception
// Integer intobject = (Integer)longobject; -> exception
Character charobject = Character.valueOf( (char)((Long)longobject).longValue() );
// (char)(long)longobject;
Integer intobject = (int)(long)longobject;Végülis logikus: a wrapper osztályok (szinte) kizárólag a saját primitivjükkel átjárhatóak (boxing). És csak a primitivek alakíthatóak egymásba (casting), a nem öröklési viszonyban álló objectek nem. (Bár a Long-Object átalakítás szintén casting, ha mindent jól értettem.)
Gondolom, ez itt sokaknak nagyon alap szint; de én azért jól megszenvedtem vele, mire kiolvastam a tudományból, hogy pontosan mi is kell ide meg hogyan működik...
-
Ursache
senior tag
Ezt en is meg akartam kerdezni, csak nem mertem
https://www.youtube.com/watch?v=eIri9YLHpOg
-
thon73
tag
válasz Aethelstone #6988 üzenetére
Konkrétan, használom, azért kellett felfedeznem
Egy speciális szöveget (egyfajta programnyelvet) szeretne feldolgozni a program. A beolvasás minden adat-elemnél közel azonos, csak éppen pl. a String String-ként, a numerikus érték Long-ként érkezik. Az érkező adatelemekről egyébként elég sok mindent tudok, pl. azt is, hogy a numerikusak milyen pontosságúak kell legyenek. Nem csupán java értelemben, hanem pl. ha egy szín jön, az unsigned 32 bittel írható le (ami egyébként belefér egy signed int-be).
Az eredeti megvalósítás ellenőrizte a pontosságot, aztán visszaadott egy - a kívánt pontosságnak megfelelő - Long értéket. Csakhogy, egyszerűbb ha pl. pont a szineknél kapásból egy Integer pontosságú értéket ad vissza, mert akkor nem kell tovább bonyolítani a dolgot az adatot tároló változók szintjén.
Egyébként az egész teljesen prímán működött, amíg a különböző típusokat különböző metódusok szedték elő. Viszont egy közös Object-tel egyetlen átlátható metódusra egyszerűsödött az egész - éppen csak ide-oda kellett volna konvertálnom az adatokat. Na, ez nem ment. Utána meg már az érdeklődés is hajtott.
Bocs, ez kicsit leegyszerűsítette a problémát, de remélem, érthető maradt.
(Mivel nem vagyok profi programozó, azt sem igazán tudtam, hogy mire keressek a googliban. Végül aztán sikerült megtalálni.)
-
thon73
tag
válasz Ursache #6991 üzenetére
Ööö. Ilyesmi csak két nagyságrenddel egyszerűbben.
Az egyik kollégám mondta, hogy Javaban nem programozni kell, csak tudni, hogy hol írták már meg...
Ebben van valami igazság.Nekem két funkció is kellett - "human readable" adatokkal feltöltse az adatstrutúrát (ilyen már van pl. xml), - de (2.) feltöltés közben egyfajta "előkészítő" adatfeldolgozást is végezzen; ha a forrás azt indokolja. Ez utóbbit nem lehet valószínűleg saját kód hozzápasszintása nélkül megoldani...
((A valóságban meg egy hevenyészett (sőt tákolt) tesztkód adta meg az alapötletet, ami átgyúrás után rövid, tömör és tetszetős lett. Bár valaki már biztos ezt is megírta...))Köszönöm a fenti linket, már elkezdtem elmélyedni benne
-
Ursache
senior tag
Ahogy mondtad, hogy programnyelvet kell felismertetni, feldolgozni, egyből a fordítóprogramok tárgy ugrott be, onnét meg bisonc++ és flex. Gondoltam, hogy java-ban is van valami ehhez hasonló (ennek megfelelő) változat, és van Szépen elkülönítve vannak a részek, struktúrált felépítés, semmi gányolás. Lexikális elemzés, szintaktikus elemzés, szemantikus elemzés, kódgenerálás (kódoptimalizálás).
De ennek azért komoly elméleti háttere is van (LA)LR(1) vagy általánosítva k-ra. SLR(1), meg mindenféle formális nyelvek, automata, grammatikák, nyelvosztályok. VDA (véges determinisztikus automaták), különféle algoritmusok, CYK algo, etc... Szóval könnyen el lehet benne veszni.
Hajrá!
https://www.youtube.com/watch?v=eIri9YLHpOg
-
Aethelstone
addikt
szoftvernigger...mi így nevezzük a mezei programozót
MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...
-
nagyúr
válasz M_AND_Ms #6997 üzenetére
Lehet, hogy en dolgozom rossz (jo?) helyen, ilyennel meg nem talalkoztam. 100%-os specifikacio ugyebar nem letezik. A modern professzionalis fejleszteshez lenyegeben arra van szukseg, hogy a programozo domain expert is legyen.
Vagy legalabbis en csak olyan helyeken dolgoztam meg, ahol az uzleti logikat a fejlesztok jobban ertettek, mint a felhasznalok. (Ebben voltak neurobiologusok, market makerek, mittudomen.)
while (!sleep) sheep++;
-
M_AND_Ms
addikt
A karikírozás, mint fogalom ismert?
Amúgy ezt a "kubikos" megfogalmazást egy számomra igen nagyra értékelt ember mondta, aki egy igencsak jól prosperáló, nemzetközi szinten is sikeres több, száz főt foglalkoztató szoftverfejlesztő céget alapított, alkotott, vezetett és vitt sikerre, egészen a haláláig. Ő tudta, hogy mit jellemez a kubikos hasonlattal.
Aki tejszínhabot szeretne, az inkább verje ki a fejéből!
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Képeken az egyik kameráját elvesztő Sony Xperia 10 VI
- HiFi műszaki szemmel - sztereó hangrendszerek
- Az Apple megszerezné a klubvilágbajnokság közvetítési jogait
- Gitáros topic
- Azonnali VGA-s kérdések órája
- Végre megjelenési dátumot kapott az xDefiant
- Kerékpárosok, bringások ide!
- Apple iPhone 15 Pro Max - Attack on Titan
- Bemutatkozott a Moto G32 4G
- További aktív témák...
- Triangle Heliade Es hangfalpár
- Apple iPhone 14 128gb Midnight + Garancia
- Apple iPhone 12 Pro Max, Pacific Blue, 128Gb, független 86% akku
- Szuper Akció:Igényeseknek-Exkluziv-12Genes-Core i7-Dell Latitude 5430-Harmad áron-garival!!!
- Western Digital 6TB NasWare 3.0 WD60EFRX-68l0bn1 keveset használt eladó.
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen