timetable.data
Class ResourceGroup

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

public class ResourceGroup
extends java.lang.Object

Reprezantace skupiny zdrojů v rozvrhovacím problému.


Field Summary
 boolean conjunctive
          Příznak konjunktivní či disjunktivní skupiny zdrojů
 boolean changed
          Příznak změny
 java.lang.String name
          Jméno
 java.lang.String note
          Poznámka
protected  java.util.Vector resources
          Reprezentace zdrojů pomocí třídy java.util.Vector
 java.lang.String shortCut
          Zkratka jména skupiny zdrojů
 
Constructor Summary
ResourceGroup()
          Konstruktor.
ResourceGroup(Resource resource)
          Konstruktor.
ResourceGroup(Resource[] resource)
          Konstruktor.
ResourceGroup(java.lang.String name)
          Konstruktor.
 
Method Summary
 void add(Resource resource)
          Přidání zdroje do skupiny
 boolean canAllBeFreeAt(int slot, int length)
          Otázka, zda-li může být všechny zdroje ve skupině v požadovaný čas volné.
 boolean canOneBeFreeAt(int slot, int length)
          Otázka, zda-li může být jeden ze zdrojů ve skupině v požadovaný čas volný.
 java.lang.Object clone()
          Vrátí jinou instanci této skupiny.
 int countFreeAt(int slot, int length)
          Spočte počet volných zdrojů v daný čas ve skupině.
 boolean equals(java.lang.Object o)
          Porovná na rovnost dvě skupiny
 Resource get(int i)
          Vrátí zdroj s požadovaným indexem.
 ResourceGroup getFreeAt(int slot, int length)
          Vrátí skupinu volných zdrojů v daný čas
 java.lang.String getName()
          Získání jména skupiny
 boolean haveSameContent(ResourceGroup r)
          Zjistí, zda-li dvě skupiny obsahují stejné zdroje.
 int indexOf(Resource resource)
          Vrátí index požadovaného zdroje.
protected  void init(ActivityGroup allActivities)
          Inicializace skupiny po načtení
 boolean isAllFreeAt(int slot, int length)
          Otázka, zda-li jsou všechny zdroje ve skupině v požadovaný čas volné.
 boolean isChanged()
          Dotaz na změnu skupiny
 boolean isInGroup(Resource resource)
          Dotaz na přítomnost zdroje ve skupině
 boolean isOneFreeAt(int slot, int length)
          Otázka, zda-li je jeden ze zdrojů ve skupině v požadovaný čas volný.
protected static ResourceGroup read(java.io.ObjectInputStream in, Config config)
          Načtení skupiny ze streamu
protected static ResourceGroup read(java.io.ObjectInputStream in, ResourceGroup allResources)
          Načtení skupiny ze streamu
 void remove(Resource resource)
          Odebrání zdroje ze skupiny
 void removeAll()
          Odebrání všech zdrojů ze skupiny
 void set(int i, Resource resource)
          Nastavení zdroje s indexem
 void setName(java.lang.String name)
          Nastavení jména.
 int size()
          Vrátí počet zdrojů ve skupině
 java.lang.String toString()
          Vrátí zkratky zdrojů ve skupině jako řetězec.
protected  void write(java.io.ObjectOutputStream out, ActivityGroup allActivities)
          Zápis skupiny do streamu.
protected  void write(java.io.ObjectOutputStream out, ResourceGroup allResources)
          Zápis skupiny do streamu.
 
Methods inherited from class java.lang.Object
, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

resources

protected java.util.Vector resources
Reprezentace zdrojů pomocí třídy java.util.Vector

shortCut

public java.lang.String shortCut
Zkratka jména skupiny zdrojů

note

public java.lang.String note
Poznámka

name

public java.lang.String name
Jméno

changed

public boolean changed
Příznak změny

conjunctive

public boolean conjunctive
Příznak konjunktivní či disjunktivní skupiny zdrojů
Constructor Detail

ResourceGroup

public ResourceGroup()
Konstruktor.

ResourceGroup

public ResourceGroup(java.lang.String name)
Konstruktor.
Parameters:
name - jméno skupiny

ResourceGroup

public ResourceGroup(Resource resource)
Konstruktor.
Parameters:
resource - Zdroj resource bude přidán do skupiny po jejím vytvoření.

ResourceGroup

public ResourceGroup(Resource[] resource)
Konstruktor.
Parameters:
resource - skupina zdrojů bude přidána do skupiny po jejím vytvoření.
Method Detail

setName

public void setName(java.lang.String name)
Nastavení jména.
Parameters:
name - jméno

getName

public java.lang.String getName()
Získání jména skupiny
Returns:
jméno skupiny

add

public void add(Resource resource)
Přidání zdroje do skupiny
Parameters:
zdroj -  

remove

public void remove(Resource resource)
Odebrání zdroje ze skupiny
Parameters:
zdroj -  

isChanged

public boolean isChanged()
Dotaz na změnu skupiny
Returns:
true, pokud byla změna

isInGroup

public boolean isInGroup(Resource resource)
Dotaz na přítomnost zdroje ve skupině
Parameters:
resource - zdroj
Returns:
true, pokud je zdroj ve skupině

removeAll

public void removeAll()
Odebrání všech zdrojů ze skupiny

size

public int size()
Vrátí počet zdrojů ve skupině
Returns:
počet zdrojů ve skupině

get

public Resource get(int i)
Vrátí zdroj s požadovaným indexem. Tento index je číslován od 0.
Parameters:
i - index zdroje ve skupině
Returns:
zdroj s indexem i

set

public void set(int i,
                Resource resource)
Nastavení zdroje s indexem
Parameters:
i - index zdroje ve skupině
resource - zdroj, který bude na toto místu umístěn

indexOf

public int indexOf(Resource resource)
Vrátí index požadovaného zdroje.
Parameters:
resource - zdroj
Returns:
index zdroje ve skupině, -1 pokud tam není

isOneFreeAt

public boolean isOneFreeAt(int slot,
                           int length)
Otázka, zda-li je jeden ze zdrojů ve skupině v požadovaný čas volný.
Parameters:
slot - požadovaný časový slot
length - délka aktivity, pro kterou se daná operace zjišťuje -> jsou procházeny sloty slot .. slot+lengt-1
Returns:
true, pokud takový zdroj ve skupině je

isAllFreeAt

public boolean isAllFreeAt(int slot,
                           int length)
Otázka, zda-li jsou všechny zdroje ve skupině v požadovaný čas volné.
Parameters:
slot - požadovaný časový slot
length - délka aktivity, pro kterou se daná operace zjišťuje -> jsou procházeny sloty slot .. slot+lengt-1
Returns:
true, pokud jsou volné

canOneBeFreeAt

public boolean canOneBeFreeAt(int slot,
                              int length)
Otázka, zda-li může být jeden ze zdrojů ve skupině v požadovaný čas volný. To znamená, že dané sloty nemají HARD podmínku a případní aktivity v nich umístěné jdou odebrat.
Parameters:
slot - požadovaný časový slot
length - délka aktivity, pro kterou se daná operace zjišťuje -> jsou procházeny sloty slot .. slot+lengt-1
Returns:
true, pokud takový zdroj ve skupině je

canAllBeFreeAt

public boolean canAllBeFreeAt(int slot,
                              int length)
Otázka, zda-li může být všechny zdroje ve skupině v požadovaný čas volné. To znamená, že dané sloty nemají HARD podmínku a případní aktivity v nich umístěné jdou odebrat.
Parameters:
slot - požadovaný časový slot
length - délka aktivity, pro kterou se daná operace zjišťuje -> jsou procházeny sloty slot .. slot+lengt-1
Returns:
true, pokud ano

countFreeAt

public int countFreeAt(int slot,
                       int length)
Spočte počet volných zdrojů v daný čas ve skupině.
Parameters:
slot - požadovaný časový slot
length - délka aktivity, pro kterou se daná operace zjišťuje -> jsou procházeny sloty slot .. slot+lengt-1
Returns:
počet volných zdrojů

getFreeAt

public ResourceGroup getFreeAt(int slot,
                               int length)
Vrátí skupinu volných zdrojů v daný čas
Parameters:
slot - požadovaný časový slot
length - délka aktivity, pro kterou se daná operace zjišťuje -> jsou procházeny sloty slot .. slot+lengt-1
Returns:
skupina volných zdrojů

clone

public java.lang.Object clone()
Vrátí jinou instanci této skupiny.
Overrides:
clone in class java.lang.Object
Returns:
jiná instance stejné skupiny

equals

public boolean equals(java.lang.Object o)
Porovná na rovnost dvě skupiny
Overrides:
equals in class java.lang.Object
Parameters:
o - druhá skupina
Returns:
true, pokud obsahují stejné zdroje (ve stejném pořadí) a mají stejné parametry

haveSameContent

public boolean haveSameContent(ResourceGroup r)
Zjistí, zda-li dvě skupiny obsahují stejné zdroje.
Parameters:
r - druhá skupina
Returns:
true, pokud obě skupiny obsahují stejné zdroje (i v jiném pořadí)

write

protected void write(java.io.ObjectOutputStream out,
                     ActivityGroup allActivities)
              throws java.io.IOException
Zápis skupiny do streamu.
Parameters:
out - stream
allActivities - množina všech aktivit

read

protected static ResourceGroup read(java.io.ObjectInputStream in,
                                    Config config)
                             throws java.io.IOException,
                                    java.lang.ClassNotFoundException,
                                    TimetableException
Načtení skupiny ze streamu
Parameters:
in - stream
config - konfigurace
Returns:
načtená skupina

init

protected void init(ActivityGroup allActivities)
Inicializace skupiny po načtení
Parameters:
allActivities - množina všech aktivit

write

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

read

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

toString

public java.lang.String toString()
Vrátí zkratky zdrojů ve skupině jako řetězec. Příklad "{Z1, Z2, Z3}"
Overrides:
toString in class java.lang.Object
Returns:
řetězec (ve složených závorkách čárkami oddělené zkratky jmen jednotlivých zdrojů)