pl.edu.pjwstk.yaod.objects
Class YObject

java.lang.Object
  |
  +--pl.edu.pjwstk.yaod.objects.YObject
Direct Known Subclasses:
YBackward, YComplexObject, YReference, YSimpleObject

public abstract class YObject
extends java.lang.Object

Klasa, ktorej zadaniem jest dodanie zachowania do statycznych struktur, jakimi sa atomy. Kazdy z obiektow YObject zawiera referencję do reprezentowanego przez niego atomu. Podczas gdy w systemie moze istniec tylko jeden obiekt typu Atom na rekord, obiektow typu YObject moze byc nieskonczona ilosc (rozroznienie to ma znaczenie przede wszystkim dla wspolbieznosci). Czesc metod realizowana jest poprzez delegacje (np. pobieranie nazwy), a czesc dodaje nowa funkcjonalnosc (np. zarzadzanie referencjami zwrotnymi). Kazda zmiana w obiekcie YObject jest natychmiast nanoszona w atomie. Modul zarzadzania wspolbieznoscia powinien w przyszlosci zapewnic blokowanie atomu przez rownolegle piszace/czytajace instancje klasy YObject.

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

Method Summary
 void connect(ObjectID ownerID)
          Podlacza obiekt do obiektu nadrzednego o podanym identyfikatorze.
 void disconnect()
          Odlacza obiekt od obiektu nadrzednego.
protected  Atom getAtom()
          Zwraca atom, ktory reprezentuje dany obiekt.
 YBackward getBackward()
          Zwraca obiekt referencji zwrotnych przyporzadkowany danemu obiektowi.
 java.lang.String getName()
          Zwraca nazwe atomu, ktory reprezentuje dany obiekt (lub inaczej: zwraca nazwe obiektu).
 ObjectID getNextSibling()
          Zwraca nastepny obiekt na tym samym poziomie drzewa obiektow.
 ObjectID getOID()
          Zwraca identyfikator obiektu (identyfikator atomu).
 ObjectID getOwner()
          Zwraca obiekt nadrzedny.
 ObjectID getPreviousSibling()
          Zwraca poprzedni obiekt na tym samym poziomie drzewa obiektow.
protected  SVRP getServer()
          Zwraca obiekt procesu usługowego, który przypisano danemu obiektowi.
 void reconnect(ObjectID newRootID)
          Odlacza obiekt od biezacego obiektu nadrzednego i podlacza go do innego obiektu.
 void reconnectAfter(ObjectID newRootID, ObjectID afterID)
          Odlacza obiekt od biezacego obiektu nadrzednego i podlacza go do innego obiektu.
 void setName(java.lang.String name)
          Ustala nazwe obiektu.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getAtom

protected Atom getAtom()
Zwraca atom, ktory reprezentuje dany obiekt.
Returns:
atom obiektu.

getServer

protected SVRP getServer()
Zwraca obiekt procesu usługowego, który przypisano danemu obiektowi.
Returns:
proces usługowy.

getName

public java.lang.String getName()
Zwraca nazwe atomu, ktory reprezentuje dany obiekt (lub inaczej: zwraca nazwe obiektu).
Returns:
nazwa atomu (obiektu).

setName

public void setName(java.lang.String name)
Ustala nazwe obiektu.
Parameters:
name - nazwa obiektu.

getOID

public ObjectID getOID()
Zwraca identyfikator obiektu (identyfikator atomu).
Returns:
identyfikator obiektu.

getOwner

public ObjectID getOwner()
Zwraca obiekt nadrzedny.
Returns:
identyfikator obiektu nadrzednego.

getNextSibling

public ObjectID getNextSibling()
Zwraca nastepny obiekt na tym samym poziomie drzewa obiektow.
Returns:
identyfikator nastepnego obiektu.

getPreviousSibling

public ObjectID getPreviousSibling()
Zwraca poprzedni obiekt na tym samym poziomie drzewa obiektow.
Returns:
identyfikator poprzedniego obiektu.

connect

public void connect(ObjectID ownerID)
             throws NoSuchObjectException,
                    BlockFreeSpaceException
Podlacza obiekt do obiektu nadrzednego o podanym identyfikatorze.
Parameters:
ownerID - identyfikator obiektu nadrzednego.
Returns:
NoSuchObjectException brak obiektu o podanym identyfikatorze.

reconnect

public void reconnect(ObjectID newRootID)
               throws NoSuchObjectException
Odlacza obiekt od biezacego obiektu nadrzednego i podlacza go do innego obiektu.
Parameters:
newRootID - identyfikator nowego obiektu nadrzednego.
Throws:
NoSuchObjectException - brak jakiegos obiektu wskazanego jego identyfikatorem. TODO: pozostale atomy zlozone

reconnectAfter

public void reconnectAfter(ObjectID newRootID,
                           ObjectID afterID)
                    throws NoSuchObjectException
Odlacza obiekt od biezacego obiektu nadrzednego i podlacza go do innego obiektu.
Parameters:
newRootID - identyfikator nowego obiektu nadrzednego.
afterID - identyfikator obiektu podrzednego po ktorym obiekt ma zostac umieszczony.
Throws:
NoSuchObjectException - brak jakiegos obiektu wskazanego jego identyfikatorem.

disconnect

public void disconnect()
                throws NoSuchObjectException
Odlacza obiekt od obiektu nadrzednego. Najpierw kasuje wszystkie referencje do danego obiektu, a pozniej kasuje wszystkie obiekty podrzedne oraz obiekt je zawierajacy.
Throws:
NoSuchObjectException - brak w skladzie jakiegos obiektu.

getBackward

public YBackward getBackward()
Zwraca obiekt referencji zwrotnych przyporzadkowany danemu obiektowi.
Returns:
obiekt referencji zwrotnych.