timetable.data
Class ActivityResources

java.lang.Object
  |
  +--timetable.data.ActivityResources
All Implemented Interfaces:
java.io.Serializable

public class ActivityResources
extends java.lang.Object
implements java.io.Serializable

Reprezentace množiny skupin zdrojů. Třída umožňuje i ukládání jednotlivých zdrojů - což je ekvivalentní skupinám zdrojů o jednom prvku.
Jde tedy o jakési pole proměnné délky, kde prvkem může být budto samotný zdroj nebo skupina zdrojů.

See Also:
Serialized Form

Constructor Summary
ActivityResources()
          Konstruktor.
 
Method Summary
 void add(Resource resource)
          Konstruktor.
 void add(ResourceGroup resources)
          Konstruktor.
 boolean canAllBeFreeAt(int slot, int length)
          Zjistí, zda-li může být daná množina požadovaných zdrojů použita pro plánování v daný čas.
 java.lang.Object clone()
          Vytvoří jinou instanci této množiny
 int contains(Resource resource)
          Vrátí index prvku (zdroje či skupiny zdrojů) který obsahuje daný zdroj.
 int countAllFreeAt(int slot, int length)
          Spočte počet možných umístění aktivity v daný čas bez konfliktu.
 Resource getResource(int i)
          Vrátí zdroj na dané pozici.
 ResourceGroup getResources(int i)
          Vrátí skupinu zdrojů na dané pozici
 int indexOf(java.lang.Object o)
          Zjistí umístění zdroje či skupiny zdrojů v množině
 boolean isAllFreeAt(int slot, int length)
          Zjistí, zda-li je daná množina požadovaných zdrojů volná v daný čas. (v případě disjunktivních skupin stačí aby byl volný pouze jeden zdroj skupiny)
 boolean isGroup(int i)
          Zjistí, zda-li je i-tý prvek skupina nebo samostatný zdroj
static ActivityResources read(java.io.ObjectInputStream in, ResourceGroup allResources)
          Načtení množiny ze streamu
 void remove(int i)
          Odstranění zdroje či skupiny zdrojů.
 void remove(java.lang.Object o)
          Odstranění zdroje či skupiny zdrojů
 void removeAll()
          Odstranění všech prvků množiny.
 void setAt(int pos, java.lang.Object o)
          Nastaví zdroj či skupinu zdrojů na daném místě.
 int size()
          Vrátí počet prvků v množině.
 java.lang.String toString()
           
 void write(java.io.ObjectOutputStream out, ResourceGroup allResources)
          Zápis množiny na stream
 
Methods inherited from class java.lang.Object
, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ActivityResources

public ActivityResources()
Konstruktor.
Method Detail

add

public void add(Resource resource)
Konstruktor.
Parameters:
resource - zdroj, který bude do množiny přidán.

add

public void add(ResourceGroup resources)
Konstruktor.
Parameters:
resources - skupina zdrojů, která bude do množiny přidána.

setAt

public void setAt(int pos,
                  java.lang.Object o)
Nastaví zdroj či skupinu zdrojů na daném místě.
Parameters:
pos - index pozice
o - zdroj nebo skupina zdrojů, která bude uložena na dané pozici

remove

public void remove(int i)
Odstranění zdroje či skupiny zdrojů.
Parameters:
i - index zdroje či skupiny zdrojů, který(á) má být odstraněn(a)

remove

public void remove(java.lang.Object o)
Odstranění zdroje či skupiny zdrojů
Parameters:
o - zdoj či skupina zdrojů, který(á) má být odstraněn(a)

removeAll

public void removeAll()
Odstranění všech prvků množiny.

size

public int size()
Vrátí počet prvků v množině. Tedy počet zdrojů či skupin zdrojů ve skupině.
Returns:
počet prvků

isGroup

public boolean isGroup(int i)
Zjistí, zda-li je i-tý prvek skupina nebo samostatný zdroj
Returns:
true, pokud jde o skupinu

indexOf

public int indexOf(java.lang.Object o)
Zjistí umístění zdroje či skupiny zdrojů v množině
Parameters:
o - hledaný zdroj či skupina zdrojů
Returns:
příslušný index, -1 pokud takový prvek ve množině není

contains

public int contains(Resource resource)
Vrátí index prvku (zdroje či skupiny zdrojů) který obsahuje daný zdroj.
Parameters:
resource - hledaný zdroj
Returns:
index zdroje či skupiny zdrojů, který je (nebo která obsahuje) příslušný zdroj

getResource

public Resource getResource(int i)
Vrátí zdroj na dané pozici.
Parameters:
i - index ve množině
Returns:
příslušný zdroj (Pokud je na dané pozici skupina zdrojů, návratová hodnota bude null)

getResources

public ResourceGroup getResources(int i)
Vrátí skupinu zdrojů na dané pozici
Parameters:
i - index ve množině
Returns:
příslušná skupina zdrojů (Pokud je na dané pozici samostaný zdroj, návratová hodnota bude null)

canAllBeFreeAt

public boolean canAllBeFreeAt(int slot,
                              int length)
Zjistí, zda-li může být daná množina požadovaných zdrojů použita pro plánování v daný čas. To znamená, že musejí být použitelné všechny zdroje v množině, pokud jde o skupinu záleží navíc na tom, zda-li je konjunktivní. Pokud je skupina konjunktivní, musejí být použitelné všechny zdroje, pokud je disjunktivní, musí jít použít alespoň jeden zdroj.
Použitelnost znamená, že daná zdroj může být uvolněn pro plánování a žádná HARD podmínka nebude porušena.
Parameters:
slot - první slot časového úseku
Returns:
true, pokud ano (aktivita lze tedy naplánovat na dané místo)

isAllFreeAt

public boolean isAllFreeAt(int slot,
                           int length)
Zjistí, zda-li je daná množina požadovaných zdrojů volná v daný čas. (v případě disjunktivních skupin stačí aby byl volný pouze jeden zdroj skupiny)
Parameters:
slot - první slot časového úseku
Returns:
true, pokud ano (aktivita lze tedy naplánovat na dané místo bez konfliktu)

countAllFreeAt

public int countAllFreeAt(int slot,
                          int length)
Spočte počet možných umístění aktivity v daný čas bez konfliktu.
Parameters:
slot - první slot časového úseku
Returns:
0, pokud aktivita nemůže být naplánována. Jinak jde o součin volných zdrojů disjunktních skupin v daný čas)

write

public void write(java.io.ObjectOutputStream out,
                  ResourceGroup allResources)
           throws java.io.IOException
Zápis množiny na stream
Parameters:
out - stream
allResources - množina všech zdrojů

read

public static ActivityResources read(java.io.ObjectInputStream in,
                                     ResourceGroup allResources)
                              throws java.io.IOException,
                                     java.lang.ClassNotFoundException
Načtení množiny ze streamu
Parameters:
in - stream
allResources - množina všech zdrojů
Returns:
načtená množina

clone

public java.lang.Object clone()
Vytvoří jinou instanci této množiny
Overrides:
clone in class java.lang.Object
Returns:
jiná instance stejné množiny

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object