pl.edu.pjwstk.yaod.store.defaultstore.blocks
Class BlockSection

java.lang.Object
  |
  +--pl.edu.pjwstk.yaod.store.defaultstore.blocks.BlockSection

public class BlockSection
extends java.lang.Object

Klasa reprezentuje pewien wycinek bloku o zadanym poczatku i koncu, do ktorego mozna sie odwolywac za pomoca indeksu zaczynajacego sie od liczby 0. Naruszenie granic sekcji powoduje wywolanie wyjatku. Ulatwia to poruszanie sie po sekcjach glownie w bloku danych, ale nie tylko.

Author:
M. Lentner, raist@ertel.com.pl

Constructor Summary
BlockSection(BlockSection parentSection, short start, short size)
          Tworzy nowa sekcje na bazie istniejacej juz sekcji.
BlockSection(byte[] data)
          Tworzy nowa sekcje (pierwsza) na bazie tablicy.
 
Method Summary
 byte[] get(short offset, short length)
          Zwraca czesc sekcji.
 byte getByte(short offset)
          Umieszcza wartosc byte w okreslonym punkcie sekcji.
 byte[] getBytes()
          Zwraca zawartosc sekcji.
 short getEnd()
          Zwraca punkt konca danej sekcji wzgledem sekcji nadrzednej.
 short getShort(short offset)
          Zwraca wartosc short umieszczona w okreslonym punkcie sekcji.
 short getSize()
          Zwraca rozmiar sekcji.
 short getStart()
          Zwraca poczatek sekcji wzgledem sekcji nadrzednej.
 boolean isSuperSection()
          Sprawdza czy sekcja jest sekcja bazowa (jest pierwsza sekcja).
 void move(short start, short val, short len)
          Kopiuje fragment sekcji w nowe miejsce.
 void put(byte[] buf, int offset)
          Umieszcza wartosc tablicy w okreslonym punkcie sekcji.
 void putShort(short offset, short value)
          Umieszcza wartosc short w okreslonym punkcie sekcji.
 void setSize(short size)
          Ustala wartosc sekcji.
 void setStart(short start)
          Ustala poczatek sekcji wzgledem sekcji nadrzednej.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BlockSection

public BlockSection(BlockSection parentSection,
                    short start,
                    short size)
             throws SectionBoundsException
Tworzy nowa sekcje na bazie istniejacej juz sekcji.
Parameters:
parentSection - sekcja bazowa.
start - punkt w sekcji bazowej, ktory ma stanowic poczatek nowej sekcji.
size - rozmiar nowej sekcji.
Throws:
naruszono - granice sekcji bazowej.

BlockSection

public BlockSection(byte[] data)
Tworzy nowa sekcje (pierwsza) na bazie tablicy.
Parameters:
data - tablica majaca zostac podzielona na sekcje.
Method Detail

isSuperSection

public boolean isSuperSection()
Sprawdza czy sekcja jest sekcja bazowa (jest pierwsza sekcja).
Returns:
sekcja jest sekcja bazowa (true) lub nie (false).

getSize

public short getSize()
Zwraca rozmiar sekcji.
Returns:
rozmiar sekcji.

setStart

public void setStart(short start)
              throws SectionBoundsException
Ustala poczatek sekcji wzgledem sekcji nadrzednej.
Parameters:
start - poczatek sekcji.
Returns:
comments
Throws:
SectionBoundsException - granice sekcji naruszone.

getStart

public short getStart()
Zwraca poczatek sekcji wzgledem sekcji nadrzednej.
Returns:
poczatek sekcji.

getEnd

public short getEnd()
Zwraca punkt konca danej sekcji wzgledem sekcji nadrzednej.
Parameters:
paramName - comments
Returns:
comments
Throws:
SectionBoundsException - granice sekcji naruszone.

setSize

public void setSize(short size)
             throws SectionBoundsException
Ustala wartosc sekcji.
Parameters:
size - nowy rozmiar sekcji.
Throws:
SectionBoundsException - granice sekcji naruszone.

getBytes

public byte[] getBytes()
Zwraca zawartosc sekcji.
Returns:
zawartosc sekcji.

put

public void put(byte[] buf,
                int offset)
         throws SectionBoundsException
Umieszcza wartosc tablicy w okreslonym punkcie sekcji.
Parameters:
buf - wartosc umieszczana w sekcji.
offset - gdzie umiescic wartosc.
Throws:
SectionBoundsException - parametry naruszaja sekcje.

get

public byte[] get(short offset,
                  short length)
           throws SectionBoundsException
Zwraca czesc sekcji.
Parameters:
offset - poczatek fragmentu.
length - dlugosc fragmentu.
Returns:
tablica zawierajaca fragment sekcji.
Throws:
SectionBoundsException - parametry naruszaja sekcje.

move

public void move(short start,
                 short val,
                 short len)
Kopiuje fragment sekcji w nowe miejsce.
Parameters:
start - poczatek fragmentu.
val - o ile bajtow przeniesc.
len - ile bajtow przeniesc.

getShort

public short getShort(short offset)
               throws SectionBoundsException
Zwraca wartosc short umieszczona w okreslonym punkcie sekcji.
Parameters:
offset - punkt w ktorym odczytac wartosc.
Throws:
SectionBoundsException - parametry naruszaja granice sekcji.

getByte

public byte getByte(short offset)
             throws SectionBoundsException
Umieszcza wartosc byte w okreslonym punkcie sekcji.
Parameters:
offset - punkt w ktorym umiescic wartosc.
value - wartosc ktora umiescic.
Throws:
SectionBoundsException - parametry naruszaja granice sekcji.

putShort

public void putShort(short offset,
                     short value)
              throws SectionBoundsException
Umieszcza wartosc short w okreslonym punkcie sekcji.
Parameters:
offset - punkt w ktorym umiescic wartosc.
value - wartosc ktora umiescic.
Throws:
SectionBoundsException - parametry naruszaja granice sekcji.