Example #1
0
        /// <summary>
        /// Zakończ budowę bieżącego komponentu znajdującego się na stosie oraz zmień kontekst.
        /// Zmienia kontekst bieżącego komponentu, poprzez zdjęcie aktualnego komponentu ze stosu.
        /// </summary>
        /// <remarks>
        /// Trzeba podać poprawny/zgodny terminator komponentu.
        /// </remarks>
        /// <param name="terminator"></param>
        /// <returns>Zwraca stary kontekst/komponent.</returns>
        /// <exception cref="System.InvalidOperationException">Jeżeli nieprawidłowy terminator.</exception>
        private KomponentBase EndTop(KomponentBase terminator)
        {
            KontrolerKontekstu.Zapewnij(_aktualneKomponenty.Count > 0, "Nieoczekiwany terminator dokumentu.");
            KomponentBase top = _aktualneKomponenty.Pop(); //[top != null]

            top.End(terminator);
            return(top);
        }
Example #2
0
        /// <summary>
        /// Koniec konstrukcji komponentu.
        /// </summary>
        /// <param name="terminator"></param>
        public void End(KomponentBase terminator)
        {
            KontrolerKontekstu.Zapewnij(terminator.JestTerminatorem(this),
                                        string.Format("{0} nie jest terminatorem {1}", terminator, this));

            if (_closed)
            {
                throw new InvalidOperationException(
                          string.Format("Komponent {0} został już domknięty.", this));
            }

            _closed = true;
        }
Example #3
0
        /// <summary>
        /// Dodaj rekord so sekcji.
        /// </summary>
        /// <param name="rekord"></param>
        /// <exception cref="ArgumentException">
        /// Jeżeli, unikatowy identyfikator dla rekordu został powtórzony w ramach sekcji.
        /// </exception>
        private void DodajRekord(RekordSwdeBase rekord)
        {
            KontrolerKontekstu.Zapewnij(_identyfikatory.Add(rekord.Identyfikator),
                                        "Nie można dodać rekordu z tym samym identyfikatorem.");

            //Pomiń puste Idr.
            if (_indeksRekordow.Dodaj(rekord))
            {
                //Pomiń puste Id.
                if (_indeksTabel.DodajRekord(rekord))
                {
                    _rekordy.Add(rekord);
                }
            }
        }
Example #4
0
 private void ZapewnijNotNull(PozycjaSwde komponent)
 {
     KontrolerKontekstu.Zapewnij(komponent != null, "Pozycja rekordu punktowego nie może być pusta.");
 }
Example #5
0
 public virtual void DodajMetadane(MetadaneSwde komponent)
 {
     KontrolerKontekstu.Zapewnij(false, GetPrzyczynaDla(komponent.GetType()));
 }
Example #6
0
 public virtual void DodajWezelKoncowy()
 {
     KontrolerKontekstu.Zapewnij(false, GetPrzyczynaDla(typeof(WezelKoncowySwde)));
 }
Example #7
0
 public virtual void DodajWiazanie(WiazanieSwdeBase komponent)
 {
     KontrolerKontekstu.Zapewnij(false, GetPrzyczynaDla(komponent.GetType()));
 }
Example #8
0
 public virtual void DodajRekordObszarowy(RekordObszarowySwde komponent)
 {
     KontrolerKontekstu.Zapewnij(false, GetPrzyczynaDla(komponent.GetType()));
 }
Example #9
0
 /// <summary>
 /// Zwróć bieżący komponent swde, ale nie zdejmuj go ze stosu.
 /// </summary>
 /// <returns>Zwraca aktualny komponent.</returns>
 private KomponentBase GetTop()
 {
     KontrolerKontekstu.Zapewnij(_aktualneKomponenty.Count > 0, "Brak nadrzędnego komponentu.");
     return(_aktualneKomponenty.Peek());
 }
Example #10
0
 public void ZacznijBudowacSwde()
 {
     KontrolerKontekstu.Zapewnij(_aktualneKomponenty.Count == 0, "Nagłówek dokumentu można zdefiniować tylko raz.");
     _aktualneKomponenty.Push(_dokument);
 }
Example #11
0
 private void ZapewnijFormatStObj()
 {
     Regex regex = new Regex("[0-2][0-2]");
     //przynależność, wersja
     KontrolerKontekstu.Zapewnij(regex.IsMatch(_st_obj), "");
 }
Example #12
0
 private void ZapewnijNotNull(KomponentBase komponent)
 {
     KontrolerKontekstu.Zapewnij(komponent != null, "Nie można dodać pustego komponentu do rekordu.");
 }
Example #13
0
 private void ZapewnijTylkoJedenKontur()
 {
     KontrolerKontekstu.Zapewnij(!_konturZewnetrzny.HasValue, "Kontur można ustawić tylko raz.");
 }
Example #14
0
 private void ZapewnijJedenWezelKoncowy()
 {
     KontrolerKontekstu.Zapewnij(_wezelKoncowy.HasValue, "Obszar musi mieć węzeł końcowy.");
 }
Example #15
0
 private void ZapewnijTylkoJedenPunkt()
 {
     KontrolerKontekstu.Zapewnij(_pozycja == null, "Można dodać tylko jeden punkt do rekordu punktowego.");
 }
Example #16
0
 public virtual void DodajDefinicjaTypu(DefinicjaTypuSwde komponent)
 {
     KontrolerKontekstu.Zapewnij(false, GetPrzyczynaDla(komponent.GetType()));
 }
Example #17
0
 protected void ZapewnijMinimalneSegmenty(int minimalCount = 2)
 {
     KontrolerKontekstu.Zapewnij(_segmenty.Count >= minimalCount,
                                 string.Format("Linia lub obszar musi składać się z co najmniej {0} segmentów.", minimalCount));
 }
Example #18
0
 public virtual void DodajAtrybut(AtrybutSwde komponent)
 {
     KontrolerKontekstu.Zapewnij(false, GetPrzyczynaDla(komponent.GetType()));
 }
Example #19
0
 private void ZapewnijTylkoJedenWezelKoncowy()
 {
     KontrolerKontekstu.Zapewnij(!_wezelKoncowy.HasValue, "Węzeł końcowy można dodać tylko raz.");
 }
Example #20
0
 public virtual RekordLiniaSwde DodajLiniaLubObszar()
 {
     KontrolerKontekstu.Zapewnij(false, GetPrzyczynaDla(typeof(RekordLiniaSwde)));
     return(null);
 }
Example #21
0
 /// <summary>
 /// Zapewnij, aby dodać węzeł końcowy, musi być już jakaś pozycja.
 /// </summary>
 private void ZapewnijCoNajmniejJeden()
 {
     KontrolerKontekstu.Zapewnij(_segmenty.Count > 0, "Nie można dodać wezła końcowego jeżeli nie ma punktu początkowego.");
 }
Example #22
0
 public virtual void DodajKonturWew()
 {
     KontrolerKontekstu.Zapewnij(false, GetPrzyczynaDla(typeof(KonturWewnetrzny)));
 }
Example #23
0
 private void ZapewnijNotNull(SekcjaSwdeBase komponent)
 {
     KontrolerKontekstu.Zapewnij(komponent != null, "Nie można dodać pustej sekcji do dokumentu.");
 }
Example #24
0
 public virtual void DodajSekcjaObiektow(SekcjaObiektowSwde komponent)
 {
     KontrolerKontekstu.Zapewnij(false, GetPrzyczynaDla(komponent.GetType()));
 }
Example #25
0
 private void ZapewnijTylkoJednaSekcjaDanegoTypu(SekcjaSwdeBase sekcja, SekcjaSwdeBase aktualnaSekcja)
 {
     KontrolerKontekstu.Zapewnij(aktualnaSekcja == null,
                                 string.Format("Można dodać tylko jedną sekcję typu {0}.", sekcja));
 }
Example #26
0
 protected void ZapewnijIstniejeRelacja()
 {
     KontrolerKontekstu.Zapewnij(_rekord != null,
                                 string.Format("Wiązanie do rekordu nie istnieje ({0}).", ToString()));
 }
Example #27
0
 public SwdeReader(BudowniczySwde budowniczy)
 {
     KontrolerKontekstu.Zapewnij(budowniczy != null, "Do wczytania pliku swde potrzebny jest budowniczy.");
     _budowniczy = budowniczy;
 }