Settlement a jejich DB



Zadání


Vytvořte třídy QuarterImpl a CityImpl implementující rozhraní Quarter a City s jejich konstruktory a metodami vyžadovanými v přiložené dokumentaci a rozšiřující poskytnutou abstraktní třídu SettlementImpl implementující poskytnuté rozhraní Settlement. Quarter i.e. městská část má obyvatele, ty velké město nemá, za to má městské části (a ty mají obyvatele). Quarter i.e. městská část má jméno obce, jméno starosty, počet obyvatelvelké město, které je velkým městem - tedy instancí třídy CityImpl. City i.e. velké město má jméno obce, jméno starosty, jenž je titulován primátor, a své části - tedy městské části - tedy instance třídy QuarterImpl.

Standardní metoda převádějící na znakový řetězec (toString())

Metoda info() vrátí znakový řetězec

Výstup obou předchozích metod je poměrně rigidně kontrolován v testovacích a hodnotícím programu. Proto máte možnost si výstup, svého řešení porovnat zavoláním metody main v programu AA se vzorovým řešením, které je dále v zadání.

Další metody, které obě třídy (QuarterImpl a CityImpl) musí mít, jsou zřejmé z přiložené dokumentace.

Metoda

Vytvořte také metodu searchByKey do třídy DatabaseOfSettlementImpl implementující rozhraní DatabaseOfSettlement. Tato metoda searchByKey vrátí setříděnou množinu obci tj. jak velkých měst (City), tak i městských čtvrtí (Quarter), jejichž slova názvu začínají zadaným znakovým řetězcem anebo jednotlivá jména jejichž starostů začínají zadaným znakovým řetězcem. Slova v názvu nebo jména ve jméně starostů jsou oddělena právě jednou mezerou.

Používejte výhradně poskytnuté třídy (SettlementImpl, neúplnou DatabaseOfSettlementImpl, ObceException a DBObciException. K disposici máte také rozhraní (interface) Settlement, Quarter, City a DBOfSettlement. Poskytnuté třídy, kromě DatabaseOfSettlementImpl, kterou naopak máte dopsat, a vstupní soubory neměňte.




Dokumentace rozhraní Quarter a City, jež máte k disposici, a tříd QuarterImpl a CityImpl je implementující, jež máte napsat





Interface Quarter

All Superinterfaces:
java.lang.Comparable<Settlement>, Settlement

public interface Quarter
extends Settlement


Method Summary
 void include(City velkeMesto)
          vcleni objekt implemetujici rozhrani Quarter - mestskou ctvrt do objektu implemetujiciho rozhrani City - velkeho mesta
 void setPopulation(int pocetObyvatel)
           
 
Methods inherited from interface Settlement
getNameOfMayor, getNameOfSettlement, getPopulation, info, setNameOfMayor
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Method Detail

setPopulation

void setPopulation(int pocetObyvatel)
                   throws SettlException
Parameters:
pocetObyvatel - je pocet obyvatel obce typu int, na nejz by mel byt nastaven
Throws:
SettlException, - jestlize se pokusi nastavit pocet obyvatel na zaporne cislo
SettlException

include

void include(City velkeMesto)
             throws SettlException
vcleni objekt implemetujici rozhrani Quarter - mestskou ctvrt do objektu implemetujiciho rozhrani City - velkeho mesta

Parameters:
velkeMesto - - objekt implemetujici rozhrani City
Throws:
SettlException, - jestlize se pokusi zaclenit mestskou cast, ktera je jiz zaclenena
SettlException




Class QuarterImpl

java.lang.Object
  extended by SettlementImpl
      extended by QuarterImpl
All Implemented Interfaces:
java.lang.Comparable<Settlement>, Quarter, Settlement

public class QuarterImpl
extends SettlementImpl
implements Quarter


Constructor Summary
QuarterImpl(java.lang.String jmMC)
          Constructor for objects of class QuarterImpl
 
Method Summary
 int getPopulation()
           
 void include(City c)
          vcleni objekt implemetujici rozhrani Quarter - mestskou ctvrt do objektu implemetujiciho rozhrani City - velkeho mesta
 java.lang.String info()
          metoda poskytuje informace o obci: typ obce: jmeno obce; titul starosty jmena starosty; pocet obyvatel, u mestske casti ceho je casti a uvelkeho mesta jeste na dalsi radky seznam jeho casti
 void setPopulation(int poc)
           
 java.lang.String toString()
           
 
Methods inherited from class SettlementImpl
compareTo, equals, getNameOfMayor, getNameOfSettlement, hashCode, setNameOfMayor
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface Settlement
getNameOfMayor, getNameOfSettlement, setNameOfMayor
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Constructor Detail

QuarterImpl

public QuarterImpl(java.lang.String jmMC)
Constructor for objects of class QuarterImpl

Method Detail

setPopulation

public void setPopulation(int poc)
                   throws SettlException
Specified by:
setPopulation in interface Quarter
Parameters:
poc - je pocet obyvatel typu int, na nejz by mel byt nastaven
Throws:
SettlException, - jestlize se pokusi nastavit pocet obyvatel na zaporne cislo
SettlException

getPopulation

public int getPopulation()
Specified by:
getPopulation in interface Settlement
Specified by:
getPopulation in class SettlementImpl
Returns:
pocet obyvatel obce typu int

include

public void include(City c)
             throws SettlException
vcleni objekt implemetujici rozhrani Quarter - mestskou ctvrt do objektu implemetujiciho rozhrani City - velkeho mesta

Specified by:
include in interface Quarter
Parameters:
c - je velkeMesto - objekt implemetujici rozhrani City
Throws:
SettlException, - jestlize se pokusi zaclenit mestskou cast, ktera je jiz zaclenena
SettlException

info

public java.lang.String info()
metoda poskytuje informace o obci: typ obce: jmeno obce; titul starosty jmena starosty; pocet obyvatel, u mestske casti ceho je casti a uvelkeho mesta jeste na dalsi radky seznam jeho casti

Specified by:
info in interface Settlement
Specified by:
info in class SettlementImpl
Returns:
informace o obci typu String

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object




Interface City

All Superinterfaces:
java.lang.Comparable<Settlement>, Settlement

public interface City
extends Settlement


Method Summary
 void incorporate(Quarter ctvrt)
          vcleni do objektu implemetujiciho rozhrani City - velkeho mesta objekt implemetujici rozhrani Quarter - mestskou ctvrt
 
Methods inherited from interface Settlement
getNameOfMayor, getNameOfSettlement, getPopulation, info, setNameOfMayor
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Method Detail

incorporate

void incorporate(Quarter ctvrt)
                 throws SettlException
vcleni do objektu implemetujiciho rozhrani City - velkeho mesta objekt implemetujici rozhrani Quarter - mestskou ctvrt

Parameters:
ctvrt - - objekt implemetujici rozhrani Quarter
Throws:
SettlException, - jestlize se pokusi zaclenit mestskou cast, ktera je jiz zaclenena
SettlException




Class CityImpl

java.lang.Object
  extended by SettlementImpl
      extended by CityImpl
All Implemented Interfaces:
City, java.lang.Comparable<Settlement>, Settlement

public class CityImpl
extends SettlementImpl
implements City

Write a description of class VelkeMesto here.


Constructor Summary
CityImpl(java.lang.String jmObce)
          Constructor for objects of class VelkeMesto
 
Method Summary
 int getPopulation()
           
 void incorporate(Quarter q)
          vcleni do objektu implemetujiciho rozhrani City - velkeho mesta objekt implemetujici rozhrani Quarter - mestskou ctvrt
 java.lang.String info()
           
 java.lang.String toString()
           
 
Methods inherited from class SettlementImpl
compareTo, equals, getNameOfMayor, getNameOfSettlement, hashCode, setNameOfMayor
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface Settlement
getNameOfMayor, getNameOfSettlement, setNameOfMayor
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Constructor Detail

CityImpl

public CityImpl(java.lang.String jmObce)
Constructor for objects of class VelkeMesto

Method Detail

getPopulation

public int getPopulation()
Specified by:
getPopulation in interface Settlement
Specified by:
getPopulation in class SettlementImpl
Returns:
pocet obyvatel obce typu int

incorporate

public void incorporate(Quarter q)
                 throws SettlException
vcleni do objektu implemetujiciho rozhrani City - velkeho mesta objekt implemetujici rozhrani Quarter - mestskou ctvrt

Specified by:
incorporate in interface City
Parameters:
q - je ctvrt - objekt implemetujici rozhrani Quarter
Throws:
SettlException, - jestlize se pokusi zaclenit mestskou cast, ktera je jiz zaclenena
SettlException

info

public java.lang.String info()
Specified by:
info in interface Settlement
Specified by:
info in class SettlementImpl

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object




Dokumentace rozhraní Settlement a abstraktní třídy SettlementImpl ho implementující, jež obě máte k disposici





Interface Settlement

All Superinterfaces:
java.lang.Comparable<Settlement>

public interface Settlement
extends java.lang.Comparable<Settlement>


Method Summary
 java.lang.String getNameOfMayor()
           
 java.lang.String getNameOfSettlement()
           
 int getPopulation()
           
 java.lang.String info()
          metoda poskytuje informace o obci: typ obce: jmeno obce; titul starosty jmena starosty; pocet obyvatel, u mestske casti ceho je casti a uvelkeho mesta jeste na dalsi radky seznam jeho casti
 void setNameOfMayor(java.lang.String jmeno)
           
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Method Detail

getNameOfSettlement

java.lang.String getNameOfSettlement()
Returns:
jmeno obce typu String

setNameOfMayor

void setNameOfMayor(java.lang.String jmeno)
Parameters:
jmeno - starosty obce typu String

getNameOfMayor

java.lang.String getNameOfMayor()
Returns:
jmeno starosty obce typu String

getPopulation

int getPopulation()
Returns:
pocet obyvatel obce typu int

info

java.lang.String info()
metoda poskytuje informace o obci: typ obce: jmeno obce; titul starosty jmena starosty; pocet obyvatel, u mestske casti ceho je casti a uvelkeho mesta jeste na dalsi radky seznam jeho casti

Returns:
informace o obci typu String




Class SettlementImpl

java.lang.Object
  extended by SettlementImpl
All Implemented Interfaces:
java.lang.Comparable<Settlement>, Settlement

public abstract class SettlementImpl
extends java.lang.Object
implements Settlement

Abstract class ObecAbstrImpl - realisuje nektere metody predepsane v rozhrani Obec


Constructor Summary
SettlementImpl(java.lang.String jO)
           
 
Method Summary
 int compareTo(Settlement o)
          pro porovnani obci se pouziva porovnani jmen obci
 boolean equals(java.lang.Object o)
          pro test rovnosti obci se pouziva test rovnosti jmen obci
 java.lang.String getNameOfMayor()
           
 java.lang.String getNameOfSettlement()
           
abstract  int getPopulation()
           
 int hashCode()
          jako hashovaci kod obce se pouziva hashovaci kod jmena obce
abstract  java.lang.String info()
          metoda poskytuje informace o obci: typ obce: jmeno obce; titul starosty jmena starosty; pocet obyvatel, u mestske casti ceho je casti a uvelkeho mesta jeste na dalsi radky seznam jeho casti
 void setNameOfMayor(java.lang.String jmeno)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SettlementImpl

public SettlementImpl(java.lang.String jO)
Method Detail

getNameOfSettlement

public java.lang.String getNameOfSettlement()
Specified by:
getNameOfSettlement in interface Settlement
Returns:
jmeno obce typu String

setNameOfMayor

public void setNameOfMayor(java.lang.String jmeno)
Specified by:
setNameOfMayor in interface Settlement
Parameters:
jmeno - starosty obce typu String

getNameOfMayor

public java.lang.String getNameOfMayor()
Specified by:
getNameOfMayor in interface Settlement
Returns:
jmeno starosty obce typu String

info

public abstract java.lang.String info()
metoda poskytuje informace o obci: typ obce: jmeno obce; titul starosty jmena starosty; pocet obyvatel, u mestske casti ceho je casti a uvelkeho mesta jeste na dalsi radky seznam jeho casti

Specified by:
info in interface Settlement
Returns:
informace o obci typu String

getPopulation

public abstract int getPopulation()
Specified by:
getPopulation in interface Settlement
Returns:
pocet obyvatel obce typu int

hashCode

public int hashCode()
jako hashovaci kod obce se pouziva hashovaci kod jmena obce

Overrides:
hashCode in class java.lang.Object
Returns:
hashCode jmena obce

equals

public boolean equals(java.lang.Object o)
pro test rovnosti obci se pouziva test rovnosti jmen obci

Overrides:
equals in class java.lang.Object
Returns:
equals jmen obci

compareTo

public int compareTo(Settlement o)
pro porovnani obci se pouziva porovnani jmen obci

Specified by:
compareTo in interface java.lang.Comparable<Settlement>
Returns:
compareTo jmen obci




Text třídy AA, jejíž metodou main můžete volat metody implementující rozhraní Settlement, City resp. Quarter


/**
 * Trida na otestovani trid QuarterImpl a CityImpl
 *
 * @author Ales Zlamal
 * @version 2006 01 08
 */
public class AA{
    public static void main(String[] args){
        Settlement v0, c0, c1;
        City v1;
        Quarter c2, c3;

        v0 = new CityImpl("Houpy nad Blbavou");
        v0.setNameOfMayor("Properphil Fat");
        c0 = new QuarterImpl("Aquarky");
        c0.setNameOfMayor("Vlam Faet");
        try{
             ((City)v0).incorporate((Quarter)c0);
             ((Quarter)c0).setPopulation(13);
        }catch(
             SettlException oe
        ){}
        c1 = new QuarterImpl("Fotbalovice");
        c1.setNameOfMayor("Kar al Usmicha");
        try{
             ((City)v0).incorporate((Quarter)c1);
             ((Quarter)c1).setPopulation(666);
        }catch(
             SettlException oe
        ){}
        v1 = new CityImpl("Molohuc");
        v1.setNameOfMayor("Ilan van Ger");
        c2 = new QuarterImpl("Pomnikovice");
        c2.setNameOfMayor("Georgios Arkas");
        try{
             v1.incorporate(c2);
             c2.setPopulation(333);
        }catch(
             SettlException oe
        ){}
        c3 = new QuarterImpl("Blablounov");
        c3.setNameOfMayor("Elaxendar Puzba");
        try{
             v1.incorporate(c3);
             c3.setPopulation(123);
        }catch(
             SettlException oe
        ){}

        System.out.print("<|" + v0.getNameOfSettlement() + "|> "
                         + "<|" + v1.getNameOfSettlement() + "|> "
                         + "<|" + c3.getNameOfSettlement() + "|> "
                         + "<|" + c2.getNameOfSettlement() + "|> "
                         + "<|" + c1.getNameOfSettlement() + "|> "
                         + "<|" + c0.getNameOfSettlement() + "|>\n");
        System.out.print("<|" + v0.getNameOfMayor() + "|> "
                         + "<|" + v1.getNameOfMayor() + "|> "
                         + "<|" + c3.getNameOfMayor() + "|> "
                         + "<|" + c2.getNameOfMayor() + "|> "
                         + "<|" + c1.getNameOfMayor() + "|> "
                         + "<|" + c0.getNameOfMayor() + "|>\n");
        System.out.print("<|" + v0 + "|\n>"
                         + "<|" + v1 + "|>\n"
                         + "<|" + c3 + "|>\n"
                         + "<|" + c2 + "|>\n"
                         + "<|" + c1 + "|>\n"
                         + "<|" + c0 + "|>\n");
        System.out.print("<|" + v0.info() + "|"
                         + v1.info() + "|"
                         + c3.info() + "|"
                         + c2.info() + "|"
                         + c1.info() + "|"
                         + c0.info() + "|>\n");
        System.out.print("<|" + v0.getPopulation() + "|> "
                         + "<|" + v1.getPopulation() + "|> "
                         + "<|" + c3.getPopulation() + "|> "
                         + "<|" + c2.getPopulation() + "|> "
                         + "<|" + c1.getPopulation() + "|> "
                         + "<|" + c0.getPopulation() + "|>\n");
        v1.setNameOfMayor("Dorothea Rirona Karostalova");
        try{
             c2.setPopulation(11);
             ((Quarter)c0).setPopulation(17);
        }catch(
             SettlException oe
        ){}
        System.out.print("<|" + v1.getNameOfSettlement() + "|> "
                         + "<|" + c2.getNameOfSettlement() + "|> "
                         + "<|" + c0.getNameOfSettlement() + "|>\n");
        System.out.print("<|" + v1.getNameOfMayor() + "|> "
                         + "<|" + c2.getNameOfMayor() + "|> "
                         + "<|" + c0.getNameOfMayor() + "|>\n");
        System.out.print("<|" + v1 + "|>\n"
                         + "<|" + c2 + "|>\n"
                         + "<|" + c0 + "|>\n");
        System.out.print("<|" + v1.info() + "|"
                         + c2.info() + "|"
                         + c0.info() + "|>\n");
        System.out.print("<|" + v0.getPopulation() + "|> "
                         + "<|" + v1.getPopulation() + "|> "
                         + "<|" + c2.getPopulation() + "|> "
                         + "<|" + c0.getPopulation() + "|>\n");
    }
}
                        



Výstup při volání z přiloženého programu AA



<|Houpy nad Blbavou|> <|Molohuc|> <|Blablounov|> <|Pomnikovice|> <|Fotbalovice|> <|Aquarky|>
<|Properphil Fat|> <|Ilan van Ger|> <|Elaxendar Puzba|> <|Georgios Arkas|> <|Kar al Usmicha|> <|Vlam Faet|>
<|Velke mesto: Houpy nad Blbavou; primator: Properphil Fat; pocet obyvatel: 679|
><|Velke mesto: Molohuc; primator: Ilan van Ger; pocet obyvatel: 456|>
<|Mestska cast: Blablounov; starosta: Elaxendar Puzba; pocet obyvatel: 123|>
<|Mestska cast: Pomnikovice; starosta: Georgios Arkas; pocet obyvatel: 333|>
<|Mestska cast: Fotbalovice; starosta: Kar al Usmicha; pocet obyvatel: 666|>
<|Mestska cast: Aquarky; starosta: Vlam Faet; pocet obyvatel: 13|>
<|Velke mesto: Houpy nad Blbavou; primator: Properphil Fat; pocet obyvatel: 679
Mestska cast: Aquarky; starosta: Vlam Faet; pocet obyvatel: 13
Mestska cast: Fotbalovice; starosta: Kar al Usmicha; pocet obyvatel: 666
|Velke mesto: Molohuc; primator: Ilan van Ger; pocet obyvatel: 456
Mestska cast: Blablounov; starosta: Elaxendar Puzba; pocet obyvatel: 123
Mestska cast: Pomnikovice; starosta: Georgios Arkas; pocet obyvatel: 333
|Mestska cast: Blablounov; starosta: Elaxendar Puzba; pocet obyvatel: 123; je casti velkeho mesta Molohuc
|Mestska cast: Pomnikovice; starosta: Georgios Arkas; pocet obyvatel: 333; je casti velkeho mesta Molohuc
|Mestska cast: Fotbalovice; starosta: Kar al Usmicha; pocet obyvatel: 666; je casti velkeho mesta Houpy nad Blbavou
|Mestska cast: Aquarky; starosta: Vlam Faet; pocet obyvatel: 13; je casti velkeho mesta Houpy nad Blbavou
|>
<|679|> <|456|> <|123|> <|333|> <|666|> <|13|>
<|Molohuc|> <|Pomnikovice|> <|Aquarky|>
<|Dorothea Rirona Karostalova|> <|Georgios Arkas|> <|Vlam Faet|>
<|Velke mesto: Molohuc; primator: Dorothea Rirona Karostalova; pocet obyvatel: 134|>
<|Mestska cast: Pomnikovice; starosta: Georgios Arkas; pocet obyvatel: 11|>
<|Mestska cast: Aquarky; starosta: Vlam Faet; pocet obyvatel: 17|>
<|Velke mesto: Molohuc; primator: Dorothea Rirona Karostalova; pocet obyvatel: 134
Mestska cast: Blablounov; starosta: Elaxendar Puzba; pocet obyvatel: 123
Mestska cast: Pomnikovice; starosta: Georgios Arkas; pocet obyvatel: 11
|Mestska cast: Pomnikovice; starosta: Georgios Arkas; pocet obyvatel: 11; je casti velkeho mesta Molohuc
|Mestska cast: Aquarky; starosta: Vlam Faet; pocet obyvatel: 17; je casti velkeho mesta Houpy nad Blbavou
|>
<|683|> <|134|> <|11|> <|17|>
  
(Obce a starostové jsou fiktivní. Jakákoliv podobnost názvů obcí a jmen starostů s existujícími obcemi či osobami je čistě náhodná.)




Dokumentace rozhraní DatabaseOfSettlements a třídy DatabaseOfSettlementsImpl, do které máte dopsat metodu searchByKey





Interface DatabaseOfSettlements


public interface DatabaseOfSettlements


Method Summary
 void readDB(java.io.File Vstup)
          Nacte ze zadaneho souboru a naplni databasi
 java.util.SortedSet<Settlement> searchByKey(java.lang.String key)
          Vrati setridenou mnozinu obci, jejichz slova nazvu zacinaji zadanym retezcem anebo jmena jejichz starostu zacinaji zadanym retezcem
 

Method Detail

readDB

void readDB(java.io.File Vstup)
            throws DBSttlException
Nacte ze zadaneho souboru a naplni databasi

Parameters:
Vstup - je vstupni soubor (tedy objekt typu File)
Throws:
DBSttlException

searchByKey

java.util.SortedSet<Settlement> searchByKey(java.lang.String key)
Vrati setridenou mnozinu obci, jejichz slova nazvu zacinaji zadanym retezcem anebo jmena jejichz starostu zacinaji zadanym retezcem

Parameters:
key - typu String klic podlektereho se hleda
Returns:
setridena mnozina obci vyhovujici parametrum hledani



Class DatabaseOfSettlementsImpl

java.lang.Object
  extended by DatabaseOfSettlementsImpl
All Implemented Interfaces:
DatabaseOfSettlements

public class DatabaseOfSettlementsImpl
extends java.lang.Object
implements DatabaseOfSettlements


Constructor Summary
DatabaseOfSettlementsImpl()
          Constructor for objects of class DatabaseObciImpl
 
Method Summary
 void readDB(java.io.File vstup)
          Nacte ze zadaneho souboru a naplni databasi
 java.util.SortedSet<Settlement> searchByKey(java.lang.String key)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DatabaseOfSettlementsImpl

public DatabaseOfSettlementsImpl()
Constructor for objects of class DatabaseObciImpl

Method Detail

readDB

public void readDB(java.io.File vstup)
            throws DBSttlException
Nacte ze zadaneho souboru a naplni databasi

Specified by:
readDB in interface DatabaseOfSettlements
Parameters:
vstup - je vstupni soubor (tedy objekt typu File)
Throws:
DBSttlException

searchByKey

public java.util.SortedSet<Settlement> searchByKey(java.lang.String key)
Specified by:
searchByKey in interface DatabaseOfSettlements




Text třídy A, jejíž metodou main můžete volat metody implementující rozhraní DatabaseOfSettlements


import java.io.File;
import java.util.Set;

/**
 * Trida na otestovani tridy DatabaseOfSettlementsImpl
 *
 * @author Ales Zlamal
 * @version 2006 01 08
 */
public class A{
    public static void main(String[] args) throws DBSttlException{
        DatabaseOfSettlements dbob;

        Set<Settlement> pom;

        dbob = new DatabaseOfSettlementsImpl();

        dbob.readDB(new File("dbovstup1.txt"));

        System.out.print("Vysledek hledani podle klice \"nedo\":\n");
        pom = dbob.searchByKey("nedo");
        for(Settlement o: pom){
            if(
                o instanceof City
            ){
                System.out.print(o + "\n");
            }else{
                System.out.print(o.info());
            }
        }

        System.out.print("\n");

        System.out.print("Vysledek hledani podle klice \"xxx\":\n");
        pom = dbob.searchByKey("xxx");
        for(Settlement o: pom){
            if(
                o instanceof City
            ){
                System.out.print(o + "\n");
            }else{
                System.out.print(o.info());
            }
        }

        System.out.print("\n");

        System.out.print("Vysledek hledani podle klice \"nor\":\n");
        pom = dbob.searchByKey("nor");
        for(Settlement o: pom){
            if(
                o instanceof City
            ){
                System.out.print(o + "\n");
            }else{
                System.out.print(o.info());
            }
        }
    }
}
    




Vstupní soubor dbovstup1.txt pro volání z přiloženého programu A


Prno : Risa Studanka
   Zabokunky : von Zwalieck : 22986
   Holoruce : Jiri Norak : 9574
   Ovadov : Lobomur ben Ton : 18473
   Breckovice : Simon Onsky : 13432
   Fenoknuky : Larek Prak : 153675
   Kralovnina Luka : Sup Varen : 73673
   Vranokraky : Lok Slopal : 112647
   Pilovice u Prna : Sean O'Vara : 8837

Stolice : Vlastnimil Nedozera
   Nedorezy : Maroslav Cipera : 20265
   Hrabcany : Vena Kluzky : 21539
   Venohraby : Muroslav Juicea z Cizihokrevnetece : 121647
   Nove Testo : Muroslav Tunela z Verenehocizihomajetku : 154829
   Stare Testo : Studa Hroz : 33452
   Pod Babou : Kradoslav Balace : 153748
   Kradlin : Jenicek Bierglgmeister : 224167
   Bervice : Berta z Barga : 103536
   Nedobehy : Blan Putka : 121658
   Kradno nad Nedousinem : Cerp MacEtr : 244950

Hulvaja : Mucha Mednani z Ilhavy
   Linskovice : Jamoryl Linsk : 15674
   Plnoblaty : Chequerreque d'Aurrgie : 13245
   Pivorady : Nedon Paplak : 12373

Tupava : Paul Toineck
   Vicevitkov : Plava Tuplova : 133612
   Konerehty : Rehina Ctyrruka : 82463
   Nedokanice : Rep Vytahun : 73125
   Brezahy : Kulp Nezastrk : 84189
   Hundredlower : Marianka Konopna : 12414
                     



Výstup při volání z přiloženého programu A s přiloženým vstupním souborem dbovstup1.txt



Vysledek hledani podle klice "nedo":
Mestska cast: Kradno nad Nedousinem; starosta: Cerp MacEtr; pocet obyvatel: 244950; je casti velkeho mesta Stolice
Mestska cast: Nedobehy; starosta: Blan Putka; pocet obyvatel: 121658; je casti velkeho mesta Stolice
Mestska cast: Nedokanice; starosta: Rep Vytahun; pocet obyvatel: 73125; je casti velkeho mesta Tupava
Mestska cast: Nedorezy; starosta: Maroslav Cipera; pocet obyvatel: 20265; je casti velkeho mesta Stolice
Mestska cast: Pivorady; starosta: Nedon Paplak; pocet obyvatel: 12373; je casti velkeho mesta Hulvaja
Velke mesto: Stolice; primator: Vlastnimil Nedozera; pocet obyvatel: 1199791

Vysledek hledani podle klice "xxx":

Vysledek hledani podle klice "nor":
Mestska cast: Holoruce; starosta: Jiri Norak; pocet obyvatel: 9574; je casti velkeho mesta Prno
      
(Obce a starostové jsou fiktivní. Jakákoliv podobnost názvů obcí a jmen starostů s existujícími obcemi či osobami je čistě náhodná.)



Upozornění


Program může být při hodnocení spouštěn i s jinými korektními vstupními soubory, než je ten přiložený. Počet bodu získaný sečtením či odečtením podle informací v testovacích třídách a v je jen orientační horní hranicí: hodnotitelé mohou podle vlastního uvážení body snížit či jinak pozměnit.




Dokumentace dalších tříd, jež máte použít





Class SettlException

java.lang.Object
  extended by java.lang.Throwable
      extended by java.lang.Exception
          extended by SettlException
All Implemented Interfaces:
java.io.Serializable

public class SettlException
extends java.lang.Exception

See Also:
Serialized Form

Constructor Summary
SettlException(java.lang.String msg)
           
SettlException(java.lang.String msg, java.lang.Throwable cause)
           
 
Method Summary
 
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SettlException

public SettlException(java.lang.String msg,
                      java.lang.Throwable cause)

SettlException

public SettlException(java.lang.String msg)




Class DBSttlException

java.lang.Object
  extended by java.lang.Throwable
      extended by java.lang.Exception
          extended by DBSttlException
All Implemented Interfaces:
java.io.Serializable

public class DBSttlException
extends java.lang.Exception

See Also:
Serialized Form

Constructor Summary
DBSttlException(java.lang.String msg)
           
DBSttlException(java.lang.String msg, java.lang.Throwable cause)
           
 
Method Summary
 
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DBSttlException

public DBSttlException(java.lang.String msg,
                       java.lang.Throwable cause)

DBSttlException

public DBSttlException(java.lang.String msg)