public class Region extends DataLoader implements ObjectCollectionParent
Kapselt eine Region bei der Rechteverwaltung
Modifier and Type | Field and Description |
---|---|
private java.util.List<Region> |
_disabledInnerRegions
Rekursiv referenzierte Regionen, die ignoriert werden
|
private ObjectSet |
_excludedObjects
Block “Ausgeschlossene Objekte”
|
private ObjectSet |
_includedObjects
Block “Enthaltene Objekte”
|
private ObjectCollectionChangeListener |
_objectCollectionChangeListener |
private java.util.Collection<RegionChangeListener> |
_regionChangeListeners |
private RegionManager |
_regionManager |
private static java.lang.String |
ASPECT_PID |
private static java.lang.String |
ATG_REGION |
_debug, _readLock, _writeLock
Constructor and Description |
---|
Region(SystemObject systemObject,
ClientDavInterface connection,
RegionManager accessControlManager)
Erstellt eine neue Region
|
Modifier and Type | Method and Description |
---|---|
protected void |
addRegionChangeListener(RegionChangeListener object)
Fügt einen Listener hinzu, der Objekte benachrichtigt, wenn diese Region geändert wird
|
boolean |
contains(SystemObject object)
Prüft, ob ein angegebenes Systemobjekt in der Region enthalten ist
|
void |
deactivateInvalidChild(DataLoader node)
Wenn es ein Problem mit der Rekursion gibt, wird dieses Objekt hiermit angewiesen den Verweis auf das angegebene (Unter-)Objekt zu deaktivieren.
|
java.util.Collection<SystemObject> |
getAllObjects(java.util.Collection<? extends SystemObjectType> types)
Gibt alle Objekte in der Region zurück.
|
protected java.util.Collection<DataLoader> |
getChildObjects()
Gibt die untergeordneten Objekte zurück.
|
protected ObjectSet |
getExcludedObjects() |
protected ObjectSet |
getIncludedObjects() |
Region |
getRegion(SystemObject regionObject) |
boolean |
isDisabled(Region region) |
(package private) static boolean |
isStringNullOrBlank(java.lang.String s)
Hilfsfunktion, die gebraucht wird um zu testen, ob eine Mengenangabe leer ist.
|
(package private) static java.util.Collection<SystemObjectType> |
mergeTypes(java.lang.Iterable<? extends SystemObjectType> typesA,
java.lang.Iterable<? extends SystemObjectType> typesB)
Gibt die Objekttypen zurück, die in beiden Listen sind.
|
private void |
notifyRegionChanged()
Benachrichtigt alle angemeldete Listener über Änderungen an diesem Objekt
|
(package private) void |
reactivateInvalidChildren()
Signalisiert allen deaktivierten referenzierten Regionen, dass diese Region geändert wurde.
|
protected void |
removeRegionChangeListener(RegionChangeListener object)
Entfernt einen mit
addRegionChangeListener(RegionChangeListener) hinzugefügten Listener wieder |
private void |
startChangeListener()
Startet interne Listener, die Änderungen an dieser Region überwachen.
|
private void |
stopChangeListener()
Stoppt interne Listener, die Änderungen an dieser Region überwachen.
|
protected void |
update(Data data)
Wird aufgerufen, wenn neue Daten eingetroffen sind.
|
getConnection, getDataState, getNoDataTime, getSystemObject, invalidate, isInitialized, startDataListener, stopDataListener, toString, toString, toString, waitForInitialization, waitForInitializationTree
private static final java.lang.String ATG_REGION
private static final java.lang.String ASPECT_PID
private ObjectSet _includedObjects
Block “Enthaltene Objekte”
private ObjectSet _excludedObjects
Block “Ausgeschlossene Objekte”
private final RegionManager _regionManager
private final java.util.Collection<RegionChangeListener> _regionChangeListeners
private final java.util.List<Region> _disabledInnerRegions
Rekursiv referenzierte Regionen, die ignoriert werden
private final ObjectCollectionChangeListener _objectCollectionChangeListener
public Region(SystemObject systemObject, ClientDavInterface connection, RegionManager accessControlManager)
Erstellt eine neue Region
systemObject
- Systemobjekt, das die Daten dieser Region enthältconnection
- Verbindung zum DatenverteileraccessControlManager
- Klasse, die Berechtigungsobjekte verwaltetstatic boolean isStringNullOrBlank(java.lang.String s)
Hilfsfunktion, die gebraucht wird um zu testen, ob eine Mengenangabe leer ist. Ein String bestehend aus Leerraum wird hier als leer gewertet.
s
- String der getestet wirdstatic java.util.Collection<SystemObjectType> mergeTypes(java.lang.Iterable<? extends SystemObjectType> typesA, java.lang.Iterable<? extends SystemObjectType> typesB)
Gibt die Objekttypen zurück, die in beiden Listen sind. Ist in Liste 1 z.B. DynamischerObjektTyp und FahrstreifenTyp und in Liste 2 BenutzerTyp, FahrStreifenTyp und MessQuerschnittTyp wird BenutzerTyp und FahrStreifenTyp zurückgegeben
typesA
- Liste 1typesB
- Liste 2protected void addRegionChangeListener(RegionChangeListener object)
Fügt einen Listener hinzu, der Objekte benachrichtigt, wenn diese Region geändert wird
object
- Callback-Interface das benachrichtigt wirdpublic boolean contains(SystemObject object)
Prüft, ob ein angegebenes Systemobjekt in der Region enthalten ist
object
- Zu prüfendes SystemObjektpublic void deactivateInvalidChild(DataLoader node)
DataLoader
Wenn es ein Problem mit der Rekursion gibt, wird dieses Objekt hiermit angewiesen den Verweis auf das angegebene (Unter-)Objekt zu deaktivieren. Beispielsweise könnte eine Rolle angewiesen werden, eine innere Rolle zu deaktivieren, weil sie identisch mit der eigentlichen Rolle ist.
deactivateInvalidChild
in class DataLoader
node
- Das zu entfernende Kindobjektpublic java.util.Collection<SystemObject> getAllObjects(java.util.Collection<? extends SystemObjectType> types)
Gibt alle Objekte in der Region zurück. Der Aufruf sollte, falls möglich, vermieden werden, da der Vorgang je nach Definition der Region sehr lange dauern kann
types
- Objekttypen, die beachtet werden sollenprotected java.util.Collection<DataLoader> getChildObjects()
DataLoader
Gibt die untergeordneten Objekte zurück. Z.B. die Rollen und Regionen bei der Berechtigungsklasse oder die Berechtigungsklassen beim Benutzer. Wird gebraucht um Rekursionen zu erkennen und um den HighLevelSubscriptionsManager
über geänderte Benutzerrechte zu informieren. Achtung: Es werden nur die direkten Kinder zurückzugeben, nicht die “Enkel” usw. - Will man alle “Enkel” usw. haben muss man diese Funktion rekursiv aufrufen.
Hinweis: Mit DataLoader.deactivateInvalidChild(DataLoader)
deaktivierte Kindelemente werden nicht aufgeführt.
getChildObjects
in class DataLoader
protected void removeRegionChangeListener(RegionChangeListener object)
Entfernt einen mit addRegionChangeListener(RegionChangeListener)
hinzugefügten Listener wieder
object
- Callback-Interface das benachrichtigt wirdprotected void update(Data data)
DataLoader
Wird aufgerufen, wenn neue Daten eingetroffen sind. Implementierende Klassen sollten hier das Data-Objekt verarbeiten.
update
in class DataLoader
data
- Data-Objekt entsprechend Attributgruppe und Aspektprivate void stopChangeListener()
Stoppt interne Listener, die Änderungen an dieser Region überwachen. Z.B. können sich in AuswahlRegion und Auswahlbereich neue dynamische Objekte ergeben, oder die Elemente von Mengen könnten sich ändern.
void reactivateInvalidChildren()
Signalisiert allen deaktivierten referenzierten Regionen, dass diese Region geändert wurde. Wird gebraucht um Rekursionen aufzulösen. Aktiviert alle mit deactivateInvalidChild(DataLoader)
deaktivierten Elemente wieder.
private void notifyRegionChanged()
Benachrichtigt alle angemeldete Listener über Änderungen an diesem Objekt
private void startChangeListener()
Startet interne Listener, die Änderungen an dieser Region überwachen. Z.B. können sich in AuswahlRegion und Auswahlbereich neue dynamische Objekte ergeben, oder die Elemente von Mengen könnten sich ändern.
public boolean isDisabled(Region region)
isDisabled
in interface ObjectCollectionParent
public Region getRegion(SystemObject regionObject)
getRegion
in interface ObjectCollectionParent
protected ObjectSet getIncludedObjects()
protected ObjectSet getExcludedObjects()