tk.exgerm.persistance
Class PersistanceService

java.lang.Object
  extended by tk.exgerm.persistance.PersistanceService
All Implemented Interfaces:
IComponent

public class PersistanceService
extends Object
implements IComponent

Vodi računa o svim aspektima koji se koriste za persistance. Čuva sve komande i akcije za kasnije čišćenje i pamti koji graf je iz kog fajla otvoren da može da ga sačuva u isti file kasnije...

Author:
Tim 2

Field Summary
protected  List<ExGAction> actions
          Sve akcije, za čišćenje
protected  List<ExGCommand> commands
          Sve komande, za čišćenje
protected  ICoreContext context
          Za komunikaciju sa Core-om
protected  List<IListener> listeners
          Svi listeneri, za čišćenje
protected  Map<String,String> loadedGraphs
          Parovi ime grafa - puna putanja do fajla iz koga je učitan
protected  Serializer serializer
          Za serijalizovanje grafova u fajlove
 
Fields inherited from interface tk.exgerm.core.plugin.IComponent
APPLICATION_CLOSING, NAME_PROPERTY
 
Constructor Summary
PersistanceService()
           
 
Method Summary
 void applicationClosing()
           
 String getGraphFile(String graphName)
          Vraća fajl iz koga je graf učitan.
 void graphAdded(IGraph g)
           
 void graphChanged(IGraph g)
           
 void graphRemoved(String graph)
           
 void graphRenamed(String oldName, String newName)
           
 boolean isGraphLoaded(String graphName)
          Proverava da li je graf učitan iz fajla.
 IGraph parseFile(Parser parser, File f, boolean as_syntax)
          Parsira file, kreira graf i učitava ga u graf registar.
 void saveGraph(IGraph graph, Builder builder, File f)
          Serijalizuje i čuva graf u file.
 void setContext(ICoreContext context)
           Postavlja kontekst komponenti.
 void stop()
          Uklanja sve tragove postojanja persistance-a iz programa
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

context

protected ICoreContext context
Za komunikaciju sa Core-om


commands

protected List<ExGCommand> commands
Sve komande, za čišćenje


actions

protected List<ExGAction> actions
Sve akcije, za čišćenje


listeners

protected List<IListener> listeners
Svi listeneri, za čišćenje


serializer

protected Serializer serializer
Za serijalizovanje grafova u fajlove


loadedGraphs

protected Map<String,String> loadedGraphs
Parovi ime grafa - puna putanja do fajla iz koga je učitan

Constructor Detail

PersistanceService

public PersistanceService()
Method Detail

setContext

public void setContext(ICoreContext context)
Description copied from interface: IComponent

Postavlja kontekst komponenti. Ovo nije isto što i BundeContext.

Konkretne komponente u telu ove metode treba da registruju sve što žele u Core, kao i da vode evidenciju o svemu što su registrovale da bi na zaustavljanju komponente mogle da počiste za sobom...

Specified by:
setContext in interface IComponent
Parameters:
context - Kontekst Core komponente.

stop

public void stop()
Uklanja sve tragove postojanja persistance-a iz programa


parseFile

public IGraph parseFile(Parser parser,
                        File f,
                        boolean as_syntax)
                 throws ExGNameConflictException,
                        InternalParseException
Parsira file, kreira graf i učitava ga u graf registar.

Parameters:
parser - Konkretna instance parsera koji se koristi u ovom konkretnom slučaju.
f - File koji se parsira. Ovo mora da bude postojeći file, u suprotnom će se samo ispisati greška na System.err i ništa neće biti urađeno. Odgovornost je klijenta da proveri da li file postoji.
Throws:
ExGNameConflictException - Ukoliko graphName ne može biti upotrebljeno jer graf sa istim imenom već postoji
InternalParseException - Ukoliko dođe do greške u parsiranju

saveGraph

public void saveGraph(IGraph graph,
                      Builder builder,
                      File f)
               throws ExGNameConflictException
Serijalizuje i čuva graf u file.

Parameters:
graph - Graf koji se čuva.
builder - Builder koji će biti upotrebljen.
f - File u koji se čuva
Throws:
ExGNameConflictException - Ukoliko ne moze od fajla da se preuzme putanja...

isGraphLoaded

public boolean isGraphLoaded(String graphName)
Proverava da li je graf učitan iz fajla.

Parameters:
graphName - Ima grafa za koji se vrši provera.
Returns:
true ako je graf učitan iz fajla, false inače

getGraphFile

public String getGraphFile(String graphName)
Vraća fajl iz koga je graf učitan.

Parameters:
graphName - Graf za koga se traži file iz koga je učitan.
Returns:
Putanju do fajla iz koga je graf učitan, ili null ako graf nije učitan iz fajla.

graphChanged

public void graphChanged(IGraph g)

graphAdded

public void graphAdded(IGraph g)

graphRenamed

public void graphRenamed(String oldName,
                         String newName)

graphRemoved

public void graphRemoved(String graph)

applicationClosing

public void applicationClosing()