de.jsystems.framework.security.acl
Class BaseGroup

java.lang.Object
  extended byde.jsystems.framework.security.acl.BaseGroup
All Implemented Interfaces:
Group, Principal
Direct Known Subclasses:
WorldGroup

public class BaseGroup
extends Object
implements Group

Beispielimplementierung für das Interface Group. Eine Gruppe enthaelt eine beliebige Anzahl von Principals. Dabei repräsentiert ein Principal einen User, eine Maschine oder was auch immer.

Zu Beachten: Das Interface Group erbt vom Interface Principal. Deshalb kann bei allen Methoden, die als Parameter ein Principal erwarten auch eine Gruppe uebergeben werden. Somit kann also auch einer Gruppe eine Gruppe als Mitglied uebergeben werden.

Version:
1.0
Copyright by Jens Homm 2001 - 2003
Author:
Jens Homm JSYSTEMS

Constructor Summary
BaseGroup(String s)
          Konstruktor.
 
Method Summary
 boolean addMember(Principal principal)
          Fuegt den uebergebenen Principal als Mitglied der Gruppe hinzu.
 boolean equals(Object otherGroup)
          Vergleicht die uebergebene Gruppe mit dieser Gruppe.
 String getName()
          Gibt den Namen der Gruppe zurück.
 int hashCode()
          Gibt einen Hashcode fuer diese Gruppe zurueck.
 boolean isMember(Principal principal)
          Prueft, ob der uebergebene Principal ein Mitglied dieser Gruppe ist.
protected  boolean isMemberRecurse(Principal principal, Vector vector)
          Durchläuft der Reihe nach alle Principals dieser Gruppe.
 Enumeration members()
          Gibt eine Enumeration mit allen Mitgliedern der Gruppe zurueck.
 boolean removeMember(Principal principal)
          Loescht den uebergebenen Principal aus der Gruppe
 String toString()
          Gibt den Namen dieser Gruppe zurueck.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BaseGroup

public BaseGroup(String s)
Konstruktor. Legt eine neue Gruppe mit dem angegebenen Namen an.

Parameters:
s - Der Name der Gruppe.
Method Detail

addMember

public boolean addMember(Principal principal)
Fuegt den uebergebenen Principal als Mitglied der Gruppe hinzu. Dieser Principal kann vom Typ Principal oder vom Typ Group sein. Der Gruppe kann ein Principal nicht hinzugefuegt werden wenn dieser Principal schon Mitglied der Gruppe ist. In diesem Fall wird false zurueckgegeben. Wenn versucht wird der gruppe sich selbst hinzuzufuegen, so wird eine IllegalArgumentException ausgeloest.

Specified by:
addMember in interface Group
Parameters:
principal - Der Principal der der Gruppe hinzugefuegt werden soll.
Returns:
true, wenn der Principal der Gruppe hinzugefuegt werden konnte. false, wenn der Principal schon ein Mitglied der gruppe war.

removeMember

public boolean removeMember(Principal principal)
Loescht den uebergebenen Principal aus der Gruppe

Specified by:
removeMember in interface Group
Parameters:
principal - Der Principal der aus der Gruppe geloescht werden soll.
Returns:
true, wenn der Principal aus der Gruppe geloescht werden konnte. false, wenn der Principal kein Mitglied der Gruppe war.

members

public Enumeration members()
Gibt eine Enumeration mit allen Mitgliedern der Gruppe zurueck. Diese Enumeration enthaelt nur Objekte die entweder vom Typ Principal oder vom Typ Group sind(Group erbt von Principal).

Specified by:
members in interface Group
Returns:
Eine Enumeration mit allen Mitgliedern der Gruppe.

equals

public boolean equals(Object otherGroup)
Vergleicht die uebergebene Gruppe mit dieser Gruppe. Die beiden Gruppen sind dann gleich wenn sie den gleichen Namen und die gleichen Mitglieder haben.

Specified by:
equals in interface Principal
Parameters:
otherGroup - Die Gruppe, die mit dieser verglichen werden soll.
Returns:
true, wenn beide Gruppen gleich sind, ansonsten false.

toString

public String toString()
Gibt den Namen dieser Gruppe zurueck.

Specified by:
toString in interface Principal
Returns:
Der Name der Gruppe.

hashCode

public int hashCode()
Gibt einen Hashcode fuer diese Gruppe zurueck. Dabei handelt es sich um den Hashcode des Gruppennamenstring.

Specified by:
hashCode in interface Principal
Returns:
Der Hashcode fuer die Gruppe.

getName

public String getName()
Gibt den Namen der Gruppe zurück.

Specified by:
getName in interface Principal
Returns:
Der Name der Gruppe.

isMember

public boolean isMember(Principal principal)
Prueft, ob der uebergebene Principal ein Mitglied dieser Gruppe ist. Wenn die Gruppe witere Gruppen enthaelt, so werden diese Gruppen auch nach diesem Principal durchsucht.

Specified by:
isMember in interface Group
Parameters:
principal - Der Principal, der in der Gruppe gesucht wird.
Returns:
true, wenn der uebergebene Principal ein Mitglied der Gruppe ist, ansonsten false.

isMemberRecurse

protected boolean isMemberRecurse(Principal principal,
                                  Vector vector)
Durchläuft der Reihe nach alle Principals dieser Gruppe. Da eine Gruppe auch ein Principal ist, wird geprüft, ob einer der Principals in dieser Gruppe wiederum eine Gruppe ist. Wenn ja wird in der enthaltenen Gruppe nach dem Principal gesucht. Sobald ein passender Eintrag gefunden wurde wird true zurückgegeben. Wenn kein Eintrag gefunden wird wird false zurückgegeben.

Parameters:
principal -
vector -
Returns:
true, wenn der uebergebene Principal Mitglied dieser Gruppe oder einer der in der Gruppe als Mitglied enthaltenen Gruppen ist, ansonsten false.