예제 #1
0
 public void resetEwidencja(DzialkaEwidencyjna dzialka)
 {
     Kontrakt.requires(dzialka._dzialkiPodzielone.Count == 0);
     Kontrakt.requires(dzialka.jednostkaRejestrowa() != null, "Działka ewidencyjna nie ma przypisanej jednostki rejestrowej.");
     Kontrakt.requires(dzialka.countKlasouzytki() > 0, "Działka ewidencyjna nie ma żadnych użytków.");
     _dzialkaDotychczasowa = dzialka;
 }
예제 #2
0
 public void dzialkaDotychczasowa(DzialkaEwidencyjna dzialka)
 {
     Kontrakt.requires(_dzialkaDotychczasowa == null,
                       "Działce już została przypisana działka dotychczasowa " + _identyfikator);
     Kontrakt.requires(dzialka.jednostkaRejestrowa() != null, "Działka dotychczasowa nie ma przypisanej jednostki rejestrowej.");
     Kontrakt.requires(dzialka.countKlasouzytki() > 0, "Działka dotychczasowa nie ma żadnych użytków.");
     _dzialkaDotychczasowa = dzialka;
 }
예제 #3
0
 public DokumentReader(string fileName)
 {
     Kontrakt.requires(File.Exists(fileName), "Plik SWDE nie istnieje: " + fileName);
     _budowniczy = new BudowniczySwde(this);
     _reader     = new SwdeReader(_budowniczy);
     _reader.Read(fileName);
     Kontrakt.ensures(_budowniczy.CzyZbudowany, "Plik SWDE nie został prawidłowo wczytany.");
 }
예제 #4
0
        public DzialkaEwidencyjna dzialkaById(IdentyfikatorDzialki id)
        {
            Kontrakt.requires(id != null);
            Kontrakt.requires(zawieraId(id), "Rozliczenie nie zawiera działki " + id.ToString());
            DzialkaEwidencyjna dzialka = _indeks[id.identyfikator()];

            Kontrakt.ensures(dzialka != null);
            return(dzialka);
        }
예제 #5
0
 public void dodajPodzial(DzialkaEwidencyjna dzialkaPierwotna, string uwaga)
 {
     //Działka powinna mieć inny numer!!!
     Kontrakt.requires(przypisanaDotychczasowa(),
                       "Nie można dodać podziału bez przypisania działki dotychczasowej.");
     Kontrakt.requires(_dzialkaDotychczasowa.Equals(dzialkaPierwotna),
                       "Podział działki dotyczy innej działki dotychczasowej " + _identyfikator);
     _dzialkaDotychczasowa.podziel(this);
     _dzialkaDotychczasowa._przyczynaPodzialu = uwaga;
 }
예제 #6
0
        public void dodajPunkt(PunktGraniczny punkt)
        {
            Kontrakt.requires(punkt != null);
            int countPrzed = countPunkty();

            _punkty.Add(punkt);
            int countPo = countPunkty();

            Kontrakt.ensures(countPrzed + 1 == countPo);
        }
예제 #7
0
 public DzialkaEwidencyjna(IdentyfikatorDzialki idDzialki, Powierzchnia powDzialki)
     : base(powDzialki)
 {
     Kontrakt.requires(idDzialki != null);
     Kontrakt.requires(powDzialki != null);
     _identyfikator = idDzialki;
     Kontrakt.ensures(_identyfikator == idDzialki);
     Kontrakt.ensures(powierzchnia().Equals(powDzialki));
     Kontrakt.ensures(_dzialkaDotychczasowa == null);
     Kontrakt.ensures(_dzialkiPodzielone.Count == 0);
 }
예제 #8
0
        public void dodajKlasouzytek(Klasouzytek klasouzytek)
        {
            Kontrakt.requires(klasouzytek != null);
            int countPrzed = countKlasouzytki();

            foreach (var uzytek in _klasouzytki)
            {
                Kontrakt.assert(!uzytek.Equals(klasouzytek), "W działce " + identyfikator().ToString() + " już jest klasoużytek " + klasouzytek);
            }
            _klasouzytki.Add(klasouzytek);
            int countPo = countKlasouzytki();

            Kontrakt.ensures(countPrzed + 1 == countPo);
        }
예제 #9
0
 public IdentyfikatorDzialki(string numerObrebu, string numerDzialki)
 {
     Kontrakt.requires(!String.IsNullOrEmpty(numerObrebu), "Numer obrębu jest pusty.");
     foreach (var c in numerObrebu)
     {
         Kontrakt.requires(char.IsDigit(c), "Numer obrębu nie składa się z cyfr:" + numerObrebu);
     }
     Kontrakt.requires(!String.IsNullOrEmpty(numerDzialki), "Numer działki jest pusty.");
     Kontrakt.requires(char.IsDigit(numerDzialki[0]),
                       "Numer działki " + numerDzialki + " nie zaczyna się od cyfry.");
     _numerObrebu  = numerObrebu;
     _numerDzialki = numerDzialki;
     Kontrakt.ensures(_numerObrebu.Equals(numerObrebu));
     Kontrakt.ensures(_numerDzialki.Equals(numerDzialki));
 }
예제 #10
0
        public void dodajDzialka(DzialkaEwidencyjna dzialka)
        {
            Kontrakt.requires(dzialka != null);
            Kontrakt.requires(dzialka.countKlasouzytki() > 0, "Działka nie zawiera żadnych klasoużytków.");
            Kontrakt.requires(!zawieraId(dzialka.identyfikator()), "Rozliczenie zawiera już działkę " + dzialka.identyfikator());
            int dzialkiPrzed = _dzialki.Count;

            _dzialki.Add(dzialka);
            IdentyfikatorDzialki id = dzialka.identyfikator();

            _indeks.Add(id.identyfikator(), dzialka);
            int dzialkiPo = _dzialki.Count;

            Kontrakt.ensures(dzialkiPrzed + 1 == dzialkiPo);
            Kontrakt.ensures(zawieraId(id));
        }
예제 #11
0
 private JednostkaRejestrowa(string teryt, string obreb, string numer)
 {
     Kontrakt.requires(!String.IsNullOrEmpty(teryt), "Numer teryt jednostki rejestrowej jest pusty.");
     Kontrakt.requires(!String.IsNullOrEmpty(obreb), "Numer obrębu jednostki rejestrowej jest pusty.");
     Kontrakt.requires(teryt.Length.Equals(8), "Numer teryt jednostki rejestrowej jest nieprawidłowy: " + teryt);
     Kontrakt.requires(obreb.Length.Equals(4), "Numer obrębu jednostki rejestrowej jest nieprawidłowy: " + obreb);
     Kontrakt.requires(!String.IsNullOrEmpty(numer), "Numer jednostki rejestrowej jest pusty.");
     Kontrakt.requires(numer.StartsWith("G") || numer.StartsWith("B") || numer.StartsWith("L"),
                       "Numer jednostki rejestrowej nie zaczyna się od G, B lub L: " + teryt + "." + obreb + "." + numer);
     Kontrakt.forAll(numer.Substring(2), char.IsDigit); //Numer jednostki rejestrowej powinien zawierać cyfry
     _teryt = teryt;
     _obreb = obreb;
     _numer = numer;
     Kontrakt.ensures(teryt.Equals(_teryt));
     Kontrakt.ensures(obreb.Equals(_obreb));
     Kontrakt.ensures(numer.Equals(_numer));
 }
예제 #12
0
        public static Powierzchnia parseMetry(string s)
        {
            Kontrakt.requires(!String.IsNullOrEmpty(s), "Powierzchnia jest pusta.");
            Powierzchnia pow = null;

            try
            {
                pow = new Powierzchnia(long.Parse(s));
            }
            catch (FormatException)
            {
                Kontrakt.fail("Napis " + s + " nie reprezentuje powierzchni w m^2.");
            }
            catch (OverflowException)
            {
                Kontrakt.fail("Napis " + s + " reprezentuje powierzchnię poza zakresem dopuszczalnych wartości.");
            }
            Kontrakt.ensures(pow != null);
            return(pow);
        }
예제 #13
0
        public static Powierzchnia parseHektary(string s)
        {
            Kontrakt.requires(!String.IsNullOrEmpty(s));
            Powierzchnia pow = null;

            try
            {
                double ha = double.Parse(s, CultureInfo.InvariantCulture);
                long   m2 = (long)(ha * 10000.0);
                pow = new Powierzchnia(m2);
            }
            catch (FormatException)
            {
                Kontrakt.fail("Napis " + s + " nie reprezentuje powierzchni w ha.");
            }
            catch (OverflowException)
            {
                Kontrakt.fail("Napis " + s + " reprezentuje powierzchnię poza zakresem dopuszczalnych wartości.");
            }
            Kontrakt.ensures(pow != null);
            return(pow);
        }
예제 #14
0
        public override Rozliczenie read(string fileName)
        {
            _klu = new FabrykaKlasouzytku();
            _klu.read(Path.Combine(Path.GetDirectoryName(fileName), "uzytkiG5.csv"));

            Kontrakt.requires(File.Exists(fileName));
            string[] lines      = File.ReadAllLines(fileName, Encoding.GetEncoding(1250));
            string   headerLine = lines[0];

            Kontrakt.assert(
                headerLine.Equals("Rozliczenie konturów klasyfikacyjnych na działkach [m^2]"),
                "Nieprawidłowy nagłówek pliku z rozliczeniem konturów.");
            Rozliczenie   rozliczenie     = new Rozliczenie(_rodzajDzialki, _klu);
            int           wczytaneDzialki = 0;
            List <string> rekordDzialki   = new List <string>();

            for (int i = 1; i < lines.Length; i++)
            {
                string linia = lines[i].Trim();
                if (koniecRekorduDzialki(rekordDzialki, linia))
                {
                    readRekordDzialki(rozliczenie, rekordDzialki);
                    wczytaneDzialki++;
                }
                else
                {
                    //Kumulacja rekordu działki wraz z użytkami.
                    if (!String.IsNullOrEmpty(linia))
                    {
                        rekordDzialki.Add(linia);
                    }
                }
            }
            Kontrakt.ensures(rozliczenie != null);
            Kontrakt.ensures(rekordDzialki.Count == 0, "Nieprawidłowo zakończony rekord działki");
            Kontrakt.ensures(rozliczenie.Count() > 0);
            Kontrakt.ensures(wczytaneDzialki == rozliczenie.Count());
            return(rozliczenie);
        }
예제 #15
0
 public Powierzchnia(long m2)
 {
     Kontrakt.requires(m2 > 0, "Powierzchnia nie jest dodatnia.");
     _m2 = m2;
 }
예제 #16
0
 private Powierzchnia powierzchniaDotychczasowa()
 {
     Kontrakt.requires(_dzialkaDotychczasowa != null,
                       "Działka nie ma przypisanej działki dotychczasowej " + _identyfikator);
     return(_dzialkaDotychczasowa.powierzchnia());
 }
예제 #17
0
 protected RozliczenieWriter(Rozliczenie rozliczenie)
 {
     Kontrakt.requires(rozliczenie != null);
     _rozliczenie = rozliczenie;
     Kontrakt.ensures(rozliczenie.Equals(_rozliczenie));
 }
예제 #18
0
 protected ObiektPowierzchniowy(Powierzchnia powierzchnia)
 {
     Kontrakt.requires(powierzchnia != null);
     _powierzchnia = powierzchnia;
 }
예제 #19
0
 public void jednostkaRejestrowa(JednostkaRejestrowa jr)
 {
     Kontrakt.requires(jr != null);
     _jednostkaRejestrowa = jr;
 }
예제 #20
0
 public IEnumerable <DzialkaEwidencyjna> dzialkiPodzielone()
 {
     Kontrakt.requires(_dzialkaDotychczasowa == null, "Działka ewidencyjna nie jest działką dotychczasową.");
     return(_dzialkiPodzielone);
 }
예제 #21
0
 public int countPodzielone()
 {
     Kontrakt.requires(_dzialkaDotychczasowa == null, "Działka ewidencyjna nie jest działką dotychczasową.");
     return(_dzialkiPodzielone.Count);
 }
예제 #22
0
 private void podziel(DzialkaEwidencyjna dzialkaNowa)
 {
     Kontrakt.requires(_dzialkaDotychczasowa == null, "Działka ewidencyjna nie jest działką dotychczasową.");
     _dzialkiPodzielone.Add(dzialkaNowa);
 }