ARoad0.gBaseInterface
Interface ImmutableACS

All Superinterfaces:
ACSCatalog, ACSRun, BaseBeanManager, BaseObject, java.lang.Cloneable, ImmutableCommonBase
All Known Subinterfaces:
ACS
All Known Implementing Classes:
ACSImpl, ACSMySQLImpl, ACSUbuntuImpl

public interface ImmutableACS
extends ACSCatalog, ACSRun, ImmutableCommonBase, java.lang.Cloneable

This interface is responsible for modeling an access control system (ACS). It registers the controlled (internal and external) resources, the eligible parties (accounts, groups, actors), and the aclEntries of the ACS. It registers the other ACS which control the ACS. It cuts or restores in its objects, the external references to other ACS when this ACS is closed or open.


Method Summary
 boolean getContainsBridgeSource()
          Gets the presence of actors which are bridge sources.
 boolean getContainsBridgeTarget()
          Gets the presence of actors which are bridge targets.
 boolean getContainsRootActions()
           
 javax.swing.Icon getEorIcon()
           
 boolean getHaveSpecializedRights()
           
 boolean getHubProperty()
          Gets the hub property for the ACS node in the IS nametree.
 java.lang.String getIconName()
           
 boolean getIsControlled()
          True if an other open ACS controls this ACS, that is has an external AclEntry or Linked Privilege for a resource or a virtual folder from this ACS.
 boolean getIsExternalOriented()
           
 boolean getIsFromAcsAddon()
          To detect an AcsAddon, this method tests the chain 'ARoad0.AcsAddon.' in the ACS class name.
 java.util.List<ImmutableName> getL_RootsForClosing()
          Gets the list of the ACSObject roots of this ACS in an opened parent ACS, where each root has to be deleted in the parent ACS at the closing of this ACS.
 java.util.List<ImmutableName> getL_RootsForIntegrity()
          Gets the list of the ACSObject roots of this ACS in an opened parent ACS, where each root in the parent ACS has some property updatings which may weaken the integrity of this ACS.
 java.util.List<ImmutableName> getL_RootsForOpening()
          Gets the list of the ACSObject roots of this ACS in an opened parent ACS, where each root has to be in the parent ACS at the opening of this ACS to ensure its working.
 java.util.List<ImmutableName> getL_TiedChildACS()
          A tied child ACS has to be opened when this instance is opened.
 java.util.Map<java.lang.String,ImmutableName> getM_BelongsToComposite()
          Gets the map which says if the ACS or a subACS belongs to a Composite ACS in the IS Name Tree.
 java.util.Map<java.lang.String,ImmutableName[]> getM_InnerRootsForChildACS()
          For a parent ACS, gets the list of the inner ACSObjects having with an opened child ACS, a relation among , and .
 java.util.Map<java.lang.String,java.lang.String[]> getM_RootCommandsForIntegrity()
          Get for a child ACS, the list of associations to roots in the parent ACS which have a root relation with this child ACS.
 java.util.Map<java.lang.String,java.lang.String[]> getM_RootCommandsForOpeningAndClosing()
          Gets for a child ACS, the list of associations to roots in the parent ACSs.
 java.util.Map<java.lang.String,java.lang.String[]> getM_RootCommandsForOpeningNoClosing()
          Gets for a child ACS, the list of associations to roots in the parent ACS which have a root relation with this child ACS.
 java.util.Map<java.lang.String,java.lang.String[]> getM_SubAndGroupPolicy()
          Gets the subACS names and their mode (for Resources or for GroupIDs) and the root names for groups trees, as nodes to display in the explorer.
 ImmutableName getOwnEPFoldersRootName()
          The current root is the first non-finalized virtual folder for eligible parties, without parent which has been created.
 ImmutableName getOwnGroupsRootName()
          The current root is the first non-finalized group without parent which has been created.
 ImmutableName getOwnResourceFoldersRootName()
          The current root is the first non-finalized virtual folder for resources without parent which has been created.
 ImmutableName getOwnResourcesRootName()
           
 ImmutableName getParentName()
          Get the mandatory parent name for the ACS in the IS nametree.
 ACSObject getReferenceOfSoftAlias(ACSObject _alias)
          Gets the reference in this ACS for an external or internal soft alias, by the way of a specific algorithm.
 boolean getTiedToParentACS()
          Gets the IS nametree property.
 java.lang.String getVisibleSpace()
          Gets the visible space for the ACS in the IS nametree.
 boolean isPropertyChangeListener(java.lang.String _propertyName, java.beans.PropertyChangeListener _listener)
          Tests a listener and returns true if it is registered for the listening of a given bound property.
 
Methods inherited from interface ARoad0.gBaseInterface.ACSCatalog
containsAclEntry, containsEligiblePartyName, containsOwnEligiblePartyName, containsOwnResourceName, containsOwnVirtualFolderName, containsPrivilegeName, containsResourceName, containsVirtualFolderName, getEditorAndAddonNames, getEmbeddedInParentACS, getEorL_AclEntries, getEorL_EPVirtualFolders, getEorL_ExternalVirtualFolders, getEorL_OwnActorBridgeSources, getEorL_OwnActorBridgeTargets, getEorL_PrivilegeForLinks, getEorL_PrivilegeForTypes, getEorL_PrivilegeForTypesForSource, getEorL_PrivilegeForTypesForTarget, getEorL_Privileges, getEorL_ResourceVirtualFolders, getEorL_VirtualFolders, getEorM_Actors, getEorM_EligibleParties, getEorM_ExternalEligibleParties, getEorM_ExternalResources, getEorM_OwnActors, getEorM_OwnEligibleParties, getEorM_OwnNoParentResources, getEorM_OwnResources, getEorM_Resources, getIncompleteBehaviorModeling, getIncompleteStructureModeling, getIsAuthorizationServer, getL_AcsControllers, getL_ImmutableRules, getL_SelectedRights, getM_RightsOfInternalKey, getM_SpecializedRights, getM_StandardRights, getM_Structure, getM_TypeOrientedPolicy, getM_TypesAndGUIPolicy, getManageAccounts, getManageACLRightsInheritance, getManageAcsRights, getManageActorInEPVirtualFolders, getManageActors, getManageAGORights, getManageAGORightsInheritance, getManageAuthorizationServerTypedPrivileges, getManageBridges, getManageClassedSpecificTypedPrivileges, getManageClassedTypedPrivileges, getManageDenyingRightPrivileges, getManageDenyRights, getManageDirectoryEPinEPVirtualFolders, getManageDirectoryEPs, getManageDirectoryInResourceVirtualFolders, getManageEPVirtualFolders, getManageExternalAcls, getManageExternalForOneToOneLinkedPrivileges, getManageFlexibleConditionalAcls, getManageGrantingRightPrivileges, getManageGrantRights, getManageGroups, getManageGroupTrees, getManageIfAllSourceLinkedPrivileges, getManageInternalAcls, getManageInternalForOneToOneLinkedPrivileges, getManageInternalHardAlias, getManageLPRIRightsInheritance, getManageMetaRights, getManageOneTimeInVirtualFolderTreeForMember, getManagePrivilegeRights, getManagePrivilegesInResources, getManagePrivilegesInVirtualFolders, getManageResources, getManageResourceTrees, getManageResourceVirtualFolders, getManageRightDefinedConditionalAcls, getManageSecGroupsForActor, getManageSimpleLinkedPrivileges, getManageSimpleResourceVirtualFolders, getManageSimpleTypedPrivileges, getManageSoftAlias, getManageVirtualFolderRightsPropagationToMembers, getManageVirtualFolders, getManageVirtualFolderTrees, getNumberOfEPs, getNumberOfResources, getOneAclEntryFromDetailledName, getOnePrivilegeFromDetailledName, getOneVirtualFolder, getRunningOnParentACS
 
Methods inherited from interface ARoad0.gBaseInterface.ACSRun
addPropertyChangeListener, addRight, getACSType, getFirstRightFromMeta, getFullControlRight, getISName, getL_Rights, getM_AcsVocabulary, getM_AssociationsOnNewObject, getM_CommentsOnProperties, getOneRight, getOneRight, removePropertyChangeListener, removeRight
 
Methods inherited from interface ARoad0.gBaseInterface.BaseBeanManager
addPropertyChangeListener, removePropertyChangeListener
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutableCommonBase
getEorBaseError, getSerialVersionUID
 
Methods inherited from interface ARoad0.gBaseInterface.BaseObject
equals, getFullName, getName, getNickName, hashCode
 

Method Detail

getParentName

ImmutableName getParentName()
Get the mandatory parent name for the ACS in the IS nametree.

Specified by:
getParentName in interface ACSRun
Returns:
the parent name. May be null or empty.

getIsControlled

boolean getIsControlled()
True if an other open ACS controls this ACS, that is has an external AclEntry or Linked Privilege for a resource or a virtual folder from this ACS. If an another ACS has an external AclEntry or Privilege which is connected to an eligible party from this ACS, this ACS is NOT controlled. The concept of control is for targets only.

Returns:
boolean true if the ACS is controlled by one or several ACS

getIsExternalOriented

boolean getIsExternalOriented()
Returns:
true if, through its open external AclEntries or Linked Privileges, the ACS is a controller of the target of another ACS, or if it delivers some rights to an EligibleParty in another ACS. Closed AclEntries and Privileges are not taken in account.

getContainsBridgeTarget

boolean getContainsBridgeTarget()
Gets the presence of actors which are bridge targets.

Returns:
boolean true if, through bridge relations, the Acs has bridge targets.

getContainsBridgeSource

boolean getContainsBridgeSource()
Gets the presence of actors which are bridge sources.

Returns:
boolean true if, through bridge relations, the Acs has bridge sources.

getOwnResourcesRootName

ImmutableName getOwnResourcesRootName()
Returns:
ImmutableName: root of the recorded own resources in the ACS base.

getOwnGroupsRootName

ImmutableName getOwnGroupsRootName()
The current root is the first non-finalized group without parent which has been created. return name of the root for the recorded own groups in the ACS base.

Returns:
ImmutableName - May be equal to VectorNameImpl.EMPTY_INSTANCE.

getOwnResourceFoldersRootName

ImmutableName getOwnResourceFoldersRootName()
The current root is the first non-finalized virtual folder for resources without parent which has been created. return name of the root for the recorded virtual folders in the ACS base.

Specified by:
getOwnResourceFoldersRootName in interface ACSCatalog
Returns:
ImmutableName - May be equal to VectorNameImpl.EMPTY_INSTANCE.

getOwnEPFoldersRootName

ImmutableName getOwnEPFoldersRootName()
The current root is the first non-finalized virtual folder for eligible parties, without parent which has been created. return name of the root for the recorded virtual folders in the ACS base.

Specified by:
getOwnEPFoldersRootName in interface ACSCatalog
Returns:
ImmutableName - May be equal to VectorNameImpl.EMPTY_INSTANCE.

getHaveSpecializedRights

boolean getHaveSpecializedRights()
Returns:
true if some specialized rights have been defined.

getHubProperty

boolean getHubProperty()
Gets the hub property for the ACS node in the IS nametree.

Returns:
the is_hub property
Since:
0.7.0

getVisibleSpace

java.lang.String getVisibleSpace()
Gets the visible space for the ACS in the IS nametree.

Returns:
the visible space property
Since:
0.7.0

getTiedToParentACS

boolean getTiedToParentACS()
Gets the IS nametree property.

Returns:
true if the acs is tied to its parent acs.
Since:
0.7.0

getL_TiedChildACS

java.util.List<ImmutableName> getL_TiedChildACS()
A tied child ACS has to be opened when this instance is opened. Like any child ACS, it has to be closed when this instance is closed, and it may be closed alone.

Returns:
the names of the child ACS which are tied up to this instance

getM_SubAndGroupPolicy

java.util.Map<java.lang.String,java.lang.String[]> getM_SubAndGroupPolicy()
Gets the subACS names and their mode (for Resources or for GroupIDs) and the root names for groups trees, as nodes to display in the explorer. A subACS is always open with its ACS. In the returned value, the key is the subACS name or a group root name, in one word, and the value is an array which may contain one or two items among the following values:

, and .

For instance, the value 'yyy' for the key , means that a group root node '' has to be displayed directly under the GroupIDs node, in the explorer. For the two other keys, a value 'xxxx' means that a node '' has to be displayed directly under the Resources and the AclEntries nodes, or under the GroupIDs node.

Returns:
the map of the subACSs and the groups tree roots. May be empty but never null.

getM_BelongsToComposite

java.util.Map<java.lang.String,ImmutableName> getM_BelongsToComposite()
Gets the map which says if the ACS or a subACS belongs to a Composite ACS in the IS Name Tree.

In the returned value, the key is the subACS name, in one word, or the last component of the ACS name, and the value is the Composite name.

Returns:
the map of the composite relations. Never null and may be empty.

getM_InnerRootsForChildACS

java.util.Map<java.lang.String,ImmutableName[]> getM_InnerRootsForChildACS()
For a parent ACS, gets the list of the inner ACSObjects having with an opened child ACS, a relation among , and . These relations set that the deleting or the updating of the ACSObject will stop the child ACS or will modify its ability to run correctly.

Returns:
the map of the inner ACSObjects which support at least one child ACS. The child ACS names are the keys, and the values are arrays of root names from this ACS. Never null and may be empty.
See Also:
getL_RootsForOpening(), getL_RootsForClosing(), getL_RootsForIntegrity()

getM_RootCommandsForOpeningAndClosing

java.util.Map<java.lang.String,java.lang.String[]> getM_RootCommandsForOpeningAndClosing()
Gets for a child ACS, the list of associations to roots in the parent ACSs.

This relation set that the root parent ACSObject, or one of its property value, has to be there when the child ACS is opened, to ensure its ability to exist, and has to be closed or updated (for a property value) at its closing.

Returns:
The map key has the format:

- ACS.Name..XXX: a parent ACS name having the value XXX.

The map value is a sequence of commands which are executed by AssociateUtilityImpl.

See Also:
AssociateUtilityImpl

getM_RootCommandsForOpeningNoClosing

java.util.Map<java.lang.String,java.lang.String[]> getM_RootCommandsForOpeningNoClosing()
Gets for a child ACS, the list of associations to roots in the parent ACS which have a root relation with this child ACS.

This relation set that the root parent ACSObject, or one of its property value, has to be there when the child ACS is opened, to ensure its ability to exist, but there is NO constraint to free the associations at its closing.

Returns:
The map key has the format:

- ACS.Name..XXX: a parent ACS name having the value XXX.

The map value is a sequence of commands which are executed by AssociateUtilityImpl.

See Also:
AssociateUtilityImpl

getM_RootCommandsForIntegrity

java.util.Map<java.lang.String,java.lang.String[]> getM_RootCommandsForIntegrity()
Get for a child ACS, the list of associations to roots in the parent ACS which have a root relation with this child ACS.

This relation set that the root parent ACSObject, or one of its property value, has to be there when the child ACS is opened, to ensure its ability to work well, in other words, following its specifications.

Returns:
The map key has the format:

- ACS.Name..XXX: a parent ACS name having the value XXX.

The map value is a sequence of commands which are executed by AssociateUtilityImpl.

See Also:
AssociateUtilityImpl

getL_RootsForOpening

java.util.List<ImmutableName> getL_RootsForOpening()
Gets the list of the ACSObject roots of this ACS in an opened parent ACS, where each root has to be in the parent ACS at the opening of this ACS to ensure its working. There is no common roots with the values in getL_RootsForIntegrity(), but some common values may exist with getL_RootsForClosing(). This list is generated by AssociateUtilityImpl from the commands in getM_RootCommandsForOpeningAndClosing() and getM_RootCommandsForOpeningNoClosing().

Returns:
the root names.

getL_RootsForClosing

java.util.List<ImmutableName> getL_RootsForClosing()
Gets the list of the ACSObject roots of this ACS in an opened parent ACS, where each root has to be deleted in the parent ACS at the closing of this ACS. There is no common roots with the values in getL_RootsForIntegrity(), but all the values should exist in getL_RootsForOpening(). This list is generated by AssociateUtilityImpl from the commands in getM_RootCommandsForOpeningAndClosing().

Returns:
the root names.

getL_RootsForIntegrity

java.util.List<ImmutableName> getL_RootsForIntegrity()
Gets the list of the ACSObject roots of this ACS in an opened parent ACS, where each root in the parent ACS has some property updatings which may weaken the integrity of this ACS. There is no common roots with the values in getL_RootsForOpening() and getL_RootsForClosing(). This list is generated by AssociateUtilityImpl from the commands in getM_RootCommandsForIntegrity().

Returns:
the root names. May be empty but never null.

getContainsRootActions

boolean getContainsRootActions()
Returns:
true if the ACS has some roots in its parent ACS

getReferenceOfSoftAlias

ACSObject getReferenceOfSoftAlias(ACSObject _alias)
Gets the reference in this ACS for an external or internal soft alias, by the way of a specific algorithm. The internal reference may have several aliases. This method returns null in this ACSImpl class. It has to be overridden in the AcsAddons where an external or internal soft alias is managed, and it is then responsible to update the soft alias and the soft reference properties. This means that a call to this method is the only mean to update these bound properties. If the soft aliasing links may vary, it is the responsivility of the AcsAddon to call this method at the right moment. This is true typically when an object is deleted, or when there is a change into the parameters defining the soft aliasing rules. This method is not declared in the ACS BeanInfo since it is not based on a property.

Parameters:
_alias - ACSObject from another ACS
Returns:
the internal ACSObject which is the reference of the argument. May be null.

getEorIcon

javax.swing.Icon getEorIcon()
Returns:
the icon associated to the ACS. May be null.

getIconName

java.lang.String getIconName()
Returns:
the name of the icon associated to the ACS. May be null.

getIsFromAcsAddon

boolean getIsFromAcsAddon()
To detect an AcsAddon, this method tests the chain 'ARoad0.AcsAddon.' in the ACS class name.


isPropertyChangeListener

boolean isPropertyChangeListener(java.lang.String _propertyName,
                                 java.beans.PropertyChangeListener _listener)
Tests a listener and returns true if it is registered for the listening of a given bound property.

Parameters:
_listener - to test
_propertyName - name of the bound property to listen
Returns:
true if _listener is registered