timetable.data
Class Resource

java.lang.Object
  |
  +--timetable.data.Resource

public class Resource
extends java.lang.Object

Reprezentace jednoho zdroje v rozvrhovacím problému.


Field Summary
protected  Config config
          Globální konfigurace
 java.lang.String name
          Jméno
 java.lang.String note
          Poznámka
protected  TimePreference preference
          Časové preference zdroje
static int SHORT_CUT_MAX_LENGTH
          Maximální délka zkratky jména
 java.lang.String shortCut
          Zkratka jména - pro vizualizaci
protected  Activity[] table
          Časová tabulka naalokovaných slotů zdroje aktivitami.
protected  int[] tableIndexes
          Indexy časové tabulky, slouží pouze pro čtení a zápis objektu
 
Constructor Summary
Resource(Config config)
          Konstruktor.
Resource(Config config, java.lang.String name)
          Konstruktor.
Resource(Config config, java.lang.String shortCut, java.lang.String name, java.lang.String note)
          Konstruktor.
 
Method Summary
 boolean canBeFreeAt(int slot)
          Otázka, zda-li může být daný slot použit k plánování.
 boolean canBeFreeAt(int slot, int length)
          Otázka, zda-li může být daný slot a sloty následující použity k plánování.
 ActivityGroup getActivitiesAt(int slot, int length)
          Vrátí množinu aktivit, které využívají daný zdroj v daných časových slotech.
 Activity getActivityAt(int slot)
          Získání aktivity, naalokované v příslušném slotu.
 TimePreference getPreference()
          Získání časových preferencí.
protected  void init(ActivityGroup allActivities)
          Inicializace zdroje po jeho načtení
 boolean isConsistentFor(Activity activity)
          Zjišťuje, zda-li je daná aktivita naplánována konzistentně.
 boolean isFreeAt(int slot)
          Otázka na využití zdroje v daný časový slot
 boolean isFreeAt(int slot, int length)
          Otázka, zda-li je slot v dané časové sloty volný.
protected static Resource read(java.io.ObjectInputStream in, Config config)
          Načtení zdroje ze streamu.
protected static Resource read(java.io.ObjectInputStream in, ResourceGroup allResources)
          Načtení zdroje ze streamu.
 void setActivityAt(int slot, Activity activity)
          Naalokování slotu pro danou aktivitu.
 void setPreference(TimePreference preference)
          Nastavení tabulky časových preferencí
 java.lang.String toString()
          Vrací zkratku jména zdroje.
protected  void write(java.io.ObjectOutputStream out, ActivityGroup allActivities)
          Zápis zdroje do objektového streamu.
protected  void write(java.io.ObjectOutputStream out, ResourceGroup allResources)
          Zápis zdroje do objektového streamu.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

config

protected Config config
Globální konfigurace

SHORT_CUT_MAX_LENGTH

public static int SHORT_CUT_MAX_LENGTH
Maximální délka zkratky jména

shortCut

public java.lang.String shortCut
Zkratka jména - pro vizualizaci

name

public java.lang.String name
Jméno

note

public java.lang.String note
Poznámka

preference

protected TimePreference preference
Časové preference zdroje

table

protected Activity[] table
Časová tabulka naalokovaných slotů zdroje aktivitami. Slouží zejména k jednoduchému zjištění využívání zdroje v daný časový okamžik.

tableIndexes

protected int[] tableIndexes
Indexy časové tabulky, slouží pouze pro čtení a zápis objektu
Constructor Detail

Resource

public Resource(Config config)
         throws TimetableException
Konstruktor.
Parameters:
config - Globální konfigurace

Resource

public Resource(Config config,
                java.lang.String shortCut,
                java.lang.String name,
                java.lang.String note)
         throws TimetableException
Konstruktor.
Parameters:
config - Globální konfigurace
shortCut - zkratka jména zdroje
name - jméno zdroje
note - poznámka

Resource

public Resource(Config config,
                java.lang.String name)
         throws TimetableException
Konstruktor.
Parameters:
config - Globální konfigurace
name - jméno zdroje
Method Detail

getPreference

public TimePreference getPreference()
Získání časových preferencí.
Returns:
tabluka časových preferencí

setPreference

public void setPreference(TimePreference preference)
Nastavení tabulky časových preferencí
Parameters:
preference - tabulka časových preferencí

getActivityAt

public Activity getActivityAt(int slot)
Získání aktivity, naalokované v příslušném slotu.
Parameters:
slot - příslušný časový slot
Returns:
naalokovaná aktivita, null pokud je slot volný

setActivityAt

public void setActivityAt(int slot,
                          Activity activity)
Naalokování slotu pro danou aktivitu.
Parameters:
slot - příslušný časový slot
activity - aktivta, která bude daný zdroj v daném čase využívat

isFreeAt

public boolean isFreeAt(int slot)
Otázka na využití zdroje v daný časový slot
Parameters:
slot - daný časový slot
Returns:
true, pokud je slot volný

canBeFreeAt

public boolean canBeFreeAt(int slot)
Otázka, zda-li může být daný slot použit k plánování. Pro takový slot musí platit:
Parameters:
slot - příslušný časový slot
Returns:
true pokud lze zdroj v daný slot použít

canBeFreeAt

public boolean canBeFreeAt(int slot,
                           int length)
Otázka, zda-li může být daný slot a sloty následující použity k plánování. Pro takové slot musí platit:
Parameters:
slot - příslušný časový slot
length - délka aktivity, která chce daný zdroj využívat -> sloty slot .. slot+length-1 jsou testovány
Returns:
true pokud lze zdroj v dané sloty použít

isFreeAt

public boolean isFreeAt(int slot,
                        int length)
Otázka, zda-li je slot v dané časové sloty volný.
Parameters:
slot - příslušný časový slot
length - délka aktivity, která chce daný zdroj využívat -> sloty slot .. slot+length-1 jsou testovány
Returns:
true pokud je zdroj v dané časové sloty volný

isConsistentFor

public boolean isConsistentFor(Activity activity)
Zjišťuje, zda-li je daná aktivita naplánována konzistentně. To znamená že všechny sloty, které vyžaduje nesmí mít HARD podmínku a musí být pro danou aktivitu alokovány.
Parameters:
activity - daná aktivita
Returns:
true, pokud je aktivta naplánována konzistentně (správně)

getActivitiesAt

public ActivityGroup getActivitiesAt(int slot,
                                     int length)
Vrátí množinu aktivit, které využívají daný zdroj v daných časových slotech.
Parameters:
slot - první časový slot
length - délka aktivity, tj. jsou procházeny sloty slot .. slot+length-1
Returns:
seznam aktivit využívajících daný zdroj v dané časové sloty

write

protected void write(java.io.ObjectOutputStream out,
                     ActivityGroup allActivities)
              throws java.io.IOException
Zápis zdroje do objektového streamu.
Parameters:
out - stream
allActivities - seznam všech aktivit

read

protected static Resource read(java.io.ObjectInputStream in,
                               Config config)
                        throws java.io.IOException,
                               java.lang.ClassNotFoundException,
                               TimetableException
Načtení zdroje ze streamu.
Parameters:
in - stream
config - globální konfigurace
Returns:
načtený zdroj

write

protected void write(java.io.ObjectOutputStream out,
                     ResourceGroup allResources)
              throws java.io.IOException
Zápis zdroje do objektového streamu.
Parameters:
out - stream
allResources - seznam všech zdrojů

read

protected static Resource read(java.io.ObjectInputStream in,
                               ResourceGroup allResources)
                        throws java.io.IOException
Načtení zdroje ze streamu.
Parameters:
in - stream
allResources - seznam všech zdrojů
Returns:
načtený zdroj

init

protected void init(ActivityGroup allActivities)
Inicializace zdroje po jeho načtení

toString

public java.lang.String toString()
Vrací zkratku jména zdroje.
Overrides:
toString in class java.lang.Object
Returns:
zkratka jména zdroje