ARoad0.gBase
Class ACSFactoryImpl

java.lang.Object
  extended by ARoad0.gBase.ACSFactoryImpl
All Implemented Interfaces:
ACSRun, BaseBeanManager, BaseObject, BoundBean
Direct Known Subclasses:
ACSFactoryMySQLImpl, ACSFactoryUbuntuImpl

public class ACSFactoryImpl
extends java.lang.Object
implements BaseObject, BoundBean, ACSRun

This class is responsible for creating a new ACS, defining its structure, and creating the restrictions on the objects, rights, privileges and types values when an ACS is created. With ACSImpl, this is the most complex class of the gBase package. The main methods which ensure the ACS integrity rules are checkACSbeforeCreation() and ACSFactoryUtilityImpl.controlAcsStructure(). Called by gDMak.ActionNewACSyst and gWork.AcsFactory. This class does not implements the interface ACSCatalog, but most of the methods of this interface are implemented. Caution: This class uses for its GUI two BeanInfo; ACSFactoryImplBeanInfo and ACSPreFactoryImplBeanInfo. ACSPreFactoryImplBeanInfo ensures the creation of the ACSFactory instance and the acsrights list.

This class methods have to be called in the right order:

- through ACSPreFactoryImplBeanInfo, creates the instance constructor, including the acs name and the type, then creates the optional acsrights,

- change the dialog frame to create most of the acs properties, through ACSFactoryImplBeanInfo:

- the ACS structure,

- the IS nametree properties for the ACS: IS name, hub property, visible space, links,

- the EP and Resource types, if any, and the specialized values,

- the 4 set/addL_XXXRights(), if any,

- checkACSbeforeCreation() may be used at any step by the user,

- createACS(), which sets the new ACS and finalizes this class instance,

This class updates the nametrees, implying NameISTrees which have some specific uses:

- an ACS may belong to one information system (IS), or not,

- there are IS nametrees where ACS belonging to the IS are registered,

- a nametree has empty nodes and ACS nodes,

- boolean 'is_empty' property for each node, false for the ACS node, which means that a non-empty node is an active entity (say, an ACS).

- boolean 'is_hub' property for each ACS, which means, if true, that any direct child of this node may have exchanges with any other direct child, if the rights allow them.

- 'VisibleSpace' is a mandatory ACS property, and the possible String values are NameISTree constants

- String 'is_authorization_server' as a Links property, which indicates an ACS which is an authorization server, which has methods to generate dynamic rigths on requests of a right source; then, the property 'is_running_on' may be true or not.

Note: couples of Strings to indicate couples (property, target_node_name) are possible in Links. IS nametrees have also components which are managed directly by BaseManagerImpl.

It is a javabean with the following bound properties: 'ISname', 'ParentName', 'HubProperty', 'VisibleSpace', 'ResourceTypes', 'EPTypes', 'TypesAndExplorerSet', 'SpecializedRightsSet', 'HavePrivilegeSpecializedRights', 'AssociationForNewObjectsMap', 'ARightsSet', 'GORightsSet', 'AclRightsSet', 'PrivilegeRightsSet', 'BridgeRightsSet', 'ManageResources', 'ManageResourceTrees', 'ManageAccounts', 'ManageGroupsOfAccounts', 'ManageGroupsOfGroups', 'ManageInternalAcls', 'ManageExternalAcls', 'ManageFlexibleConditionalAcls', 'ManageRightDefinedConditionalAcls', 'ManageActors', 'ManageBridges', 'ManageSecondaryGroupsForActor', 'ManageAGORight', 'ManageNxExecutables', 'ManageDirectoryEPs', 'ManagePrivilegeRights', 'ManageAcsRights', 'ManageMetaRights', 'VirtualFolders', 'ManageGrantRights', 'ManageDenyRights', 'TiedToParentACS', 'RunningOnParentACS', 'isRightServer', 'ComponentNodes', 'CompositeNodes', 'BelongsToComposite', 'SubAndGroupPolicy', 'Alternates', 'OpeningAndClosingRoots', 'OpeningNoClosingRoots', 'IntegrityRoots', 'Icon', 'CommentsOnProperties', 'ManageGrantingRightPrivileges', 'ManageDenyingRightPrivileges', 'ManageSimpleTypedPrivileges', 'ManageSimpleLinkedPrivileges', 'ManageResourceVirtualFolders', 'ManageEPVirtualFolders', 'ManageActorInEPVirtualFolders', 'ManageUserIDInEPVirtualFolders', 'ManageGroupIDInEPVirtualFolders', 'ManageSimpleResourceInResourceVirtualFolders', 'ManageDirectoryInResourceVirtualFolders', 'ManageDirectoryEPinEPVirtualFolders', 'ManageVirtualFolderTrees', 'OneTimeInVirtualFolderTreeForMember', 'IncompleteStructureModeling', 'IncompleteBehaviorModeling', 'PrivilegeForTypeTypes', 'PrivilegeForLinksTypes', 'ResVirtualFolderTypes', 'EPVirtualFolderTypes', 'AcsVocabulary', 'ManageACLRightInheritance', 'ManageAGORightInheritance', "ManageLPRIRightInheritance', 'ManagePrivilegesInVirtualFolders', 'ManagePrivilegesInResources', 'ManageOneTimeInVirtualFolderTreeForMember', 'ManageInternalHardAlias', 'ManageSoftAlias', 'ManageIfAllSourceLinkedPrivileges', 'ManageInternalForOneToOneLinkedPrivileges', 'ManageExternalForOneToOneLinkedPrivileges', 'ManageClassedTypedPrivileges', 'ManageClassedSpecificTypedPrivileges', 'ManageAuthorizationServerTypedPrivileges'.

This class has several subclasses in the AcsAddon packages. Most of the variables are protected.

See Also:
ACSImplBeanInfo

Field Summary
static java.lang.String A_RIGHTS_SET
          for Account rights only, in m_StandardRights_
static java.lang.String ACL_RIGHTS_SET
           
static java.lang.String BDG_RIGHTS_SET
           
protected  java.beans.PropertyChangeSupport changeSupport_
          manages all the property change listeners
protected  java.lang.String comment_
           
protected static ACSFactoryImpl EMPTY_INSTANCE
          A reusable empty instance for initialization, to avoid the use of 'new' for temporary values.
static java.lang.String GO_RIGHTS_SET
          for rights in m_StandardRights_
protected  boolean havePrivilegeSpecializedRights_
          true if some specialized rights have been set in the privilege rights; Not used in the GUI nor outside this class.
protected  java.lang.String icon_
          The file name of the icon of the aCS in the beamer - selected at the creation or the beamer uses the default value.
protected static int ICON_HEIGHT_MAX
           
protected static int ICON_WIDTH_MAX
           
protected  javax.swing.ImageIcon imageIcon_
          The image the user cannot set directly, and it is used by ActionNewACS to copy the image icon of an open ACS.
private static int INITIAL_CAPACITY_25
           
private static int INITIAL_CAPACITY_5
           
protected  boolean is_hub_
           
protected  ImmutableName iSname_
           
protected  StringRight[] l_AccountRightsSet_
           
protected  StringRight[] l_AclRightsSet_
           
protected static java.lang.String[] l_AllowedACSInterfacesForSpecializedRights_
          For the specialized rights.
protected  StringRight[] l_bridgeRightsSet_
           
private static java.lang.String[] L_EMPTY_ARRAY
           
private static StringRight[] L_EMPTY_ARRAY_2
           
protected  java.lang.String[] l_epTypes_
           
protected  java.lang.String[] l_epvfTypes_
           
protected  StringRight[] l_GORightsSet_
           
protected  java.util.List<java.lang.String> l_ImmutableRules_
          List of the ACS rules which are derivated from the structure, like 'AGO right: A rights overlay G rights'.
protected  java.lang.String[] l_privilegeForLinksTypes_
           
protected  java.lang.String[] l_privilegeForTypeTypes_
           
protected  java.lang.String[] l_resourceTypes_
           
protected  java.lang.String[] l_resvfTypes_
           
protected  StringRight[] l_Rights_
           
protected  java.util.HashMap<java.lang.String,java.lang.String[]> m_AcsVocabulary_
          The ACS vocabulary defines several independant domains: - how to name the ACSFactoryUtilityImpl.L_ACS_TREE_GENERIC_UPPER_NODES constants for this ACS, as names of the ACS nodes in the proper ACS internal frame, - what are the gBase classes to use, since some generic classes may be subclassed in an AcsAddon gBase package (see ACSFactoryUtilityImpl.L_CLASSIC_CLASS_KEYS), - if the ACS is an AcsAddon, what are the specific new classes in the AcsAddon gBase package (see ACSFactoryUtilityImpl.ACSADDON_EXTENSION_CLASSES).
protected  java.util.HashMap<ImmutableName,java.lang.String[]> m_alternateProperties_
          Map of the alternates of the ACS or the subACS, if any, with all the associated properties.
protected  java.util.HashMap<java.lang.String,java.lang.String[]> m_AssociationsForNewObjects_
          Map of mandatory associations on the ACS new objects.
protected  java.util.HashMap<java.lang.String,ImmutableName> m_BelongsToComposite_
          Immutable map which says if the ACS or a subACS belongs to a Composite ACS in the IS Name Tree.
protected  java.util.HashMap<java.lang.String,java.lang.String[]> m_CommentsOnProperties_
          Map of the comments on each ACS property, to explain the simulation.
protected  java.util.HashMap<java.lang.String,java.lang.String[]> m_ComponentNodes_
          Map of physical and logical components under the ACS or its parent.
protected  java.util.HashMap<java.lang.String,java.lang.String[]> m_CompositeNodes_
          Map of the new composite nodes for the IS nametree, outside the current ACS creation in progress.
protected  java.util.HashMap<java.lang.String,StringRight[]> m_PrivilegeRights_
          To define the privilege rights following their main type (standard rights) or second type (specialized rights)
protected  java.util.HashMap<java.lang.String,java.lang.String[]> m_RootsForAcsIntegrity_
          The map key has the format ACS.Name.
protected  java.util.HashMap<java.lang.String,java.lang.String[]> m_RootsForAcsOpeningAndClosing_
          The map key has the format ACS.Name.
protected  java.util.HashMap<java.lang.String,java.lang.String[]> m_RootsForAcsOpeningNoClosing_
          The map key has the format ACS.Name.
protected  java.util.HashMap<java.lang.String,StringRight[]> m_SpecializedRights_
          To extend or to reduce the standard rights following the target/source interface or type
protected  java.util.HashMap<java.lang.String,StringRight[]> m_StandardRights_
          Map of restrictions on the ACS StringRight properties
protected  java.util.SortedMap<java.lang.String,java.lang.Boolean> m_Structure_
          The active booleans which define the generic ACS structure and features.
protected  java.util.HashMap<java.lang.String,java.lang.String[]> m_SubAndGroupPolicy_
          Get the immutable subACSs and their dedicated nodes to display in the GUI.
protected  java.util.HashMap<java.lang.String,java.lang.String[]> m_TypesAndExplorer_
          Map of restrictions on the ACS general String properties.
protected  ImmutableName name_
           
protected  Name parentName_
           
static java.lang.String PRI_RIGHTS_SET
           
private static int PRIME
           
static java.lang.String SPE_RIGHTS_SET
           
protected  java.lang.String type_
           
protected  java.lang.String visibleSpace_
           
 
Constructor Summary
ACSFactoryImpl()
          Default constructor
ACSFactoryImpl(ImmutableName _iSname, ImmutableName _name, java.lang.String _ACStype, ImmutableName _parentName)
          Called by gDMak.ActionNewACSyst and gWork.AcsFactory.
 
Method Summary
 void addAcsVocabulary(java.lang.String _criteria, java.lang.String[] _l_values)
          Sets an ACS vocabulary, without adding to the previous values which are deleted.
 void addAlternate(java.lang.String _criteria, java.lang.String[] _l_values)
          Adds an alternate of the ACS or the subACS, if any, with all the associated properties.
protected  java.util.HashMap<java.lang.String,java.lang.String[]> addAssociations(java.util.HashMap<java.lang.String,java.lang.String[]> _m_upd_Associations, java.lang.String _criteria, java.lang.String[] _l_values)
          Adds one association to handle at the creation or the deletion of ACSObjects.
 void addAssociationsToNewObject(java.lang.String _criteria, java.lang.String[] _l_values)
          Adds one association to handle at the creation or the deletion of ACSObjects in this ACS.
 void addBelongsToComposite(java.lang.String _criteria, ImmutableName[] _l_values)
          Links a composite node in the IS nametree to the ACS or to a subACS.
 void addCommentsOnProperties(java.lang.String _criteria, java.lang.String[] _l_values)
          Adds some comments to explain how this ACS simulates a real system/software.
 void addComponentNode(java.lang.String _criteria, java.lang.String[] _l_values)
          Adds some component nodes in the IS, from the new ACS node or from its parent.
 void addCompositeNode(java.lang.String _criteria, java.lang.String[] _l_values)
          Adds a new composite node in the IS nametree.
 void addIntegrityRoots(java.lang.String _criteria, java.lang.String[] _l_values)
          Adds associations to set integrity root contraints in the parent ACSs.
 void addOpeningAndClosingRoots(java.lang.String _criteria, java.lang.String[] _l_values)
          Adds associations to create opening and closing roots in the parent ACSs.
 void addOpeningNoClosingRoots(java.lang.String _criteria, java.lang.String[] _l_values)
          Adds associations to create opening without closing roots in the parent ACSs.
 void addPrivilegeRights(java.lang.String _criteria, StringRight[] _l_rights)
          Adds some privilege rights constraints, to apply as standard or specialized rights to the privileges which have a given main type or a given second type.
 void addPropertyChangeListener(java.beans.PropertyChangeListener _l)
          Adds a listener to the bean, for all the bound properties.
 void addPropertyChangeListener(java.lang.String _propertyName, java.beans.PropertyChangeListener _l)
          Adds a listener to the bean.
 void addRight(StringRight _right)
          Registers a new ACS right through the ACSpreFactoryBeanInfo or from gWork.
 void addSpecializedRights(java.lang.String _criteria, StringRight[] _l_rights)
          Adds some specialized rights to extend or to constrain the allowed values which are defined for each right type, as in setL_xxxRightsSet().
 void addSubAndGroupPolicy(java.lang.String _criteria, java.lang.String[] _l_values)
          Adds a subACS name and its mode (for Resources or for GroupIDs) or a root name for a groups tree, as a node to display in the explorer and the IS structure.
 void addTypesAndExplorer(java.lang.String _criteria, java.lang.String[] _l_values)
          Adds the values to manage the display in the explorer, or to set the type-oriented policy following the ACSObject type.
 java.lang.String checkACSbeforeCreation()
          Controls the integrity of the ACS with all its arguments, before the call to ACSImpl.valueOf().
protected  void controlRights(StringRight[] _s, boolean _allowDeny)
          Controls the right values for the acs, which have to be registered only if there are acsrights.
 ACSImpl createACS()
          Creates the ACS with its structural arguments.
protected  ACSImpl createACSforGenericBase(ACSImpl _acs)
          Sets the ACS structure and relations in its IS.
 boolean equals(java.lang.Object _obj)
          Compare only the type and the name.
protected  void finalize()
          This method removes the right from the ACS list, but there is no guaranee that the JVM calls this method before the end of the application.
 void finalizeForUser()
          Closes the instance.
protected  void firePropertyChange(java.lang.String _propertyName, java.lang.Object _oldValue, java.lang.Object _newValue)
          Fires an event to every registered listener, in any order.
 java.lang.String getACSType()
          Returns the ACS type, as ACSImpl.GENERIC, LINUX,...
 java.lang.String getComment()
           
 StringRight getFirstRightFromMeta(java.lang.String _metaRight)
          Gets a right which is registered by this ACS.
 StringRight getFullControlRight()
          Gets the first acsright which has 'full_control' as metaright, or this metaright if no acsright complies this condition.
 ImmutableName getFullName()
          The full name is unique for the Access Road program.
 boolean getHubProperty()
          Gets the hub property for the ACS node in the IS nametree.
 java.lang.String getIcon()
           
 boolean getIncompleteBehaviorModeling()
          The modeling of the behavior is incomplete when important constraints on ACSObjects are not modelled, for instance to set their allowed rights, or their effective default rights.
 boolean getIncompleteStructureModeling()
          The modeling of the structure is incomplete when some ACSObjects miss while they participate to the decision for some important access controls, or simply when these missed ACSObjects are important for the overall ACS security, or when their important relations with some other ACSObjects are not set.
 boolean getIsAuthorizationServer()
           
 ImmutableName getISName()
          Gets the name of the information system which owns this acs.
 StringRight[] getL_AccountRightsSet()
          Gets the allowed granting right values for the Account (an UserID).
 StringRight[] getL_AclRightsSet()
           
static java.lang.String[] getL_AllowedACSInterfacesForSpecializedRights()
          Gets the allowed interfaces for the objects which are handled by an acs.
 StringRight[] getL_bridgeRightsSet()
           
 java.util.List<java.lang.String> getL_currentAcsAndSubAcsNickNames()
          Gets the current ACS and subACS name last compoents.
 java.lang.String[] getL_EPTypes()
          Gets the allowed types for the EPs.
 java.lang.String[] getL_EPVirtualFolderTypes()
          Gets the allowed types for the Eligible Party Virtual Folders.
 StringRight[] getL_GroupRightsSet()
          Gets the allowed AGO right values for the groups.
 java.util.List<java.lang.String> getL_LimitedFirstValuesForAssociation(java.lang.String _key)
          Gets the set of the authorized values for the first value of an association.
 java.util.List<java.lang.String> getL_LimitedValuesForAlternates(java.lang.String _key)
          This method defines the alternate types, the right types for alternates and the options.
 java.util.List<ImmutableName> getL_LimitedValuesForBelongsToComposite(java.lang.String _key)
          Gets the current composites in the IS, and adds the new composites that this instance will create.
 java.util.List<java.lang.String> getL_LimitedValuesForComponentNodes(java.lang.String _key)
          Gets the values which are allowed by the program for a component node.
 java.util.List<java.lang.String> getL_LimitedValuesForCompositeNodes(java.lang.String _key)
          Gets the values which are allowed by the program for a composite node.
 java.util.List<java.lang.String> getL_LimitedValuesForSubAndGroupPolicy(java.lang.String _key)
          This method defines the subacs and the groups tree nodes in the GUI explorer.
 java.util.List<java.lang.String> getL_LimitedValuesForTypesAndExplorer(java.lang.String _key)
          Gets the specialized types which are allowed by the program for a key in the types-and-explorer map and the group/node policy map.
 java.util.List<java.lang.String> getL_MapKeysForAcsVocabulary()
          This method returns the allowed keys which are used as map keys for the ACS vocabulary.
 java.util.List<java.lang.String> getL_MapKeysForCommentsOnProperties()
          This method returns the allowed keys which are used as map keys for comments on properties.
 java.util.List<java.lang.String> getL_MapKeysForPrivilegeRights()
          This method returns the allowed keys for the standard and for the specialized privilege rights: - 'MainType.main type' for each of the 6 PrivilegeAbst main types, which sets the 6 keys 'PrivilegeRights.MainType.main type' for the standard rights in ACSImpl, - 'PFType/PFLink.PrvRightsSet.Type.second type' for the specialized rights, and there is a returned value for each typed privilege second type and each linked privilege second type.
 java.util.Set<java.lang.String> getL_MapKeysForTypePolicies()
          This method returns the allowed keys which are used as map keys for specialized types and explorer values.
 java.util.List<java.lang.String> getL_MapKeysStartsForAlternates()
          Gets the Alternate key startings with the ACS name last component or the subACS names, all ended with a point.
 java.util.List<java.lang.String> getL_MapKeysStartsForComponents()
          This method returns the allowed values which is used as map key startings for component node values.
 java.lang.String[] getL_PrivilegeForLinksTypes()
          Gets the allowed second types for the PrivilegeForLinks.
 java.lang.String[] getL_PrivilegeForTypeTypes()
          Gets the allowed second types for the PrivilegeForTypes.
 java.lang.String[] getL_ResourceTypes()
          Gets the allowed types for the resources.
 java.lang.String[] getL_ResourceVirtualFolderTypes()
          Gets the allowed types for the Resource Virtual Folders.
 StringRight[] getL_Rights()
          Gets all the acsrights which are allowed in this ACS.
 java.util.Map<java.lang.String,java.lang.String[]> getM_AcsVocabulary()
          Gets an ACS vocabulary.
 java.util.Map<java.lang.String,java.lang.String[]> getM_Alternates()
          Gets the alternates of the ACS or the subACS, if any, with all the associated properties.
 java.util.Map<java.lang.String,java.lang.String[]> getM_AssociationsOnNewObject()
          Gets the associations to handle at the creation or the deletion of some ACSObjects, by the mean of actions to do by the program.
 java.util.Map<java.lang.String,ImmutableName[]> getM_BelongsToComposite()
          Gets the map which tells the ACS or a subACS belongs to a Composite ACS in the IS Name Tree.
 java.util.Map getM_CommentsOnProperties()
          Gets comments to explain how this ACS simulates a real system/software.
 java.util.Map getM_ComponentNodes()
          Gets the new component nodes in the IS nametree.
 java.util.Map getM_CompositeNodes()
          Gets the new composite nodes in the IS nametree.
 java.util.Map getM_IntegrityRoots()
          Gets associations to set integrity root contraints in the parent ACSs.
 java.util.Map getM_OpeningAndClosingRoots()
          Gets associations to create opening and closing roots in the parent ACSs, by the mean of actions to do by the program.
 java.util.Map getM_OpeningNoClosingRoots()
          Gets associations to create opening without closing roots in the parent ACSs, by the mean of actions to do by the program.
 java.util.Map getM_PrivilegeRights()
          Gets the privilege rights constraints, to apply as standard or specialized rights to the privileges which have a given main type or a given second type.
 java.util.Map getM_SpecializedRights()
          Gets the specialized rights extending or constraining the allowed values which are defined for each right type, as in setL_xxxRightsSet().
 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.
 java.util.Map getM_TypesAndExplorer()
          Gets the specialized values to manage the display in the explorer, to set the allowed types and the group policy following the type.
 boolean getManageAccounts()
           
 boolean getManageACLRightsInheritance()
           
 boolean getManageAcsRights()
           
 boolean getManageActorInEPVirtualFolders()
           
 boolean getManageActors()
           
 boolean getManageAGORights()
           
 boolean getManageAGORightsInheritance()
           
 boolean getManageAuthorizationServerTypedPrivileges()
           
 boolean getManageBridges()
           
 boolean getManageClassedSpecificTypedPrivileges()
           
 boolean getManageClassedTypedPrivileges()
           
 boolean getManageDenyingRightPrivileges()
           
 boolean getManageDirectoryEPinEPVirtualFolders()
           
 boolean getManageDirectoryEPs()
           
 boolean getManageDirectoryInResourceVirtualFolders()
           
 boolean getManageEPVirtualFolders()
           
 boolean getManageExternalAcls()
           
 boolean getManageExternalForOneToOneLinkedPrivileges()
           
 boolean getManageFlexibleConditionalAcls()
           
 boolean getManageGrantingRightPrivileges()
           
 boolean getManageGroups()
           
 boolean getManageGroupTrees()
          Caution: the name of this method is confusing, because a collection of nested groups may be more than one single group tree.
 boolean getManageIfAllSourceLinkedPrivileges()
           
 boolean getManageInternalAcls()
           
 boolean getManageInternalForOneToOneLinkedPrivileges()
           
 boolean getManageInternalHardAlias()
           
 boolean getManageLPRIRightsInheritance()
           
 boolean getManageMetaRights()
           
 boolean getManageOneTimeInVirtualFolderTreeForMember()
           
 boolean getManagePrivilegeRights()
           
 boolean getManagePrivilegesInResources()
           
 boolean getManagePrivilegesInVirtualFolders()
           
 boolean getManageResources()
           
 boolean getManageResourceTrees()
           
 boolean getManageResourceVirtualFolders()
           
 boolean getManageRightDefinedConditionalAcls()
           
 boolean getManageSecGroupsForActor()
           
 boolean getManageSimpleLinkedPrivileges()
           
 boolean getManageSimpleResourceVirtualFolders()
           
 boolean getManageSimpleTypedPrivileges()
           
 boolean getManageSoftAlias()
          Only an AcsAddon can manage the soft aliasing.
 boolean getManageVirtualFolderRightsPropagationToMembers()
           
 boolean getManageVirtualFolders()
           
 boolean getManageVirtualFolderTrees()
           
 ImmutableName getName()
          Gets the futur ACS name, including the IS name if any.
 java.lang.String getNickName()
          This short name is NOT always unique for the Access Road program.
 StringRight getOneRight(ImmutableName _name)
          Gets a right which is registered by this ACS.
 StringRight getOneRight(java.lang.String _right)
          Gets a right which is registered by this ACS.
 ImmutableName getParentName()
          Gets the optional parent name for the ACS in the IS nametree.
 java.util.Set<StringRight> getRightsInSpecializedRights()
          The possible specialized rights.
 boolean getTiedToParentACS()
           
 java.util.Set<java.lang.String> getTypesInSpecializedRights()
          The possible specialized right types are 'AccRightsSet', 'GpORightsSet', 'AclRightsSet', 'BdgRightsSet'.
 java.lang.String getVisibleSpace()
          Gets the visible space for the ACS in the IS nametree.
 int hashCode()
           
 void initializeConstraintsAfterCreation(ACS _acs)
          Initializes the ACS constraints maps, after the call to ACSImpl.valueOf().
 void initializeConstraintsBeforeCreation()
          Initializes the ACS constraints maps before the call to ACSImpl.valueOf().
protected  void moveRight(StringRight _right)
          Unregisters a right through the ACSpreFactoryBeanInfo.
protected  void newRight(StringRight _right)
          Registers a new right through the ACSpreFactoryBeanInfo.
 void removeAcsVocabulary(java.lang.String _criteria, java.lang.String[] _l_values)
          Removes an ACS vocabulary.
 void removeAlternate(java.lang.String _criteria, java.lang.String[] _l_values)
          Removes an alternate of the ACS or the subACS, if any, with all the associated properties.
protected  java.util.HashMap<java.lang.String,java.lang.String[]> removeAssociations(java.util.HashMap<java.lang.String,java.lang.String[]> _m_upd_Associations, java.lang.String _criteria, java.lang.String[] _l_values)
          Removes some associations to handle at the creation or the deletion of ACSObjects.
 void removeAssociationsToNewObject(java.lang.String _criteria, java.lang.String[] _l_values)
          Removes some associations to handle at the creation or the deletion of ACSObjects.
 void removeBelongsToComposite(java.lang.String _criteria, ImmutableName[] _l_values)
          Removes the link to a composite node in the IS nametree to the ACS or to a subACS.
 void removeCommentsOnProperties(java.lang.String _criteria, java.lang.String[] _l_values)
          Removes some comments to explain how this ACS simulates a real system/software.
 void removeComponentNode(java.lang.String _criteria, java.lang.String[] _l_values)
          Removes a new component node in the IS nametree.
 void removeCompositeNode(java.lang.String _criteria, java.lang.String[] _l_values)
          Removes a new component node in the IS nametree.
 void removeIntegrityRoots(java.lang.String _criteria, java.lang.String[] _l_values)
          Removes associations to set integrity root contraints in the parent ACSs.
 void removeOpeningAndClosingRoots(java.lang.String _criteria, java.lang.String[] _l_values)
          Removes associations to create opening and closing roots in the parent ACSs.
 void removeOpeningNoClosingRoots(java.lang.String _criteria, java.lang.String[] _l_values)
          Removes associations to create opening without closing roots in the parent ACSs.
 void removePrivilegeRights(java.lang.String _criteria, StringRight[] _l_rights)
          Removes some privilege rights constraints, to apply as standard or specialized rights to the privileges which have a given main type or a given second type.
 void removePropertyChangeListener(java.beans.PropertyChangeListener _l)
          Removes a listener to the bean, for all the bound properties.
 void removePropertyChangeListener(java.lang.String _propertyName, java.beans.PropertyChangeListener _l)
          Removes a listener to the bean.
 void removeRight(StringRight _right)
          Unregisters a right through the ACSpreFactoryBeanInfo.
 void removeSpecializedRights(java.lang.String _criteria, StringRight[] _l_rights)
          Removes some specialized rights.
 void removeSubAndGroupPolicy(java.lang.String _criteria, java.lang.String[] _l_values)
          Removes a subACS or a groups tree node, and its dedicated node in the explorer.
 void removeTypesAndExplorer(java.lang.String _criteria, java.lang.String[] _l_values)
          Removes some specialized values to manage the display in the explorer, to set the allowed types and the group policy following the type.
 void setComment(java.lang.String _s)
          Set any comment related to this acs.
 void setEorIcon(javax.swing.ImageIcon _icon)
           
 void setHubProperty(boolean _is_hub)
          Sets the optional hub property for the ACS in the IS nametree.
 void setIcon(java.lang.String _icon)
          Sets the ACS icon.
 void setIncompleteBehaviorModeling(boolean _b)
           
 void setIncompleteStructureModeling(boolean _b)
          Note: if the structure map does not contain the key 'access metarule: incomplete modeling of the ACS structure', this method throws a NullPointerException.
 void setIsAuthorizationServer(boolean _b)
           
 void setISName(ImmutableName _name)
          Sets the name of the information system which owns this acs.
 void setL_AccountRightsSet(StringRight[] _s)
          Sets the allowed granting right values for the Account (an UserID).
 void setL_AclRightsSet(StringRight[] _s)
          Sets the fixed set of rights for the AclEntries.
 void setL_bridgeRightsSet(StringRight[] _s)
          Sets the allowed right values for the bridges from actors to other ACS.
 void setL_EPTypes(java.lang.String[] _s)
          Sets the types for the EPs, but it is not mandatory.
 void setL_EPVirtualFolderTypes(java.lang.String[] _s)
          Sets the types for the Eligible Party VirtualFolders, but it is not mandatory.
 void setL_GroupRightsSet(StringRight[] _s)
          Sets the allowed granting right values for the AGO Group rights.
 void setL_PrivilegeForLinksTypes(java.lang.String[] _s)
          Sets the second types for the PrivilegeForLinks, but it is not mandatory.
 void setL_PrivilegeForTypeTypes(java.lang.String[] _s)
          Sets the second types for the PrivilegeForTypes, but it is not mandatory.
 void setL_ResourceTypes(java.lang.String[] _s)
          Sets the types for the resources, but it is not mandatory.
 void setL_ResourceVirtualFolderTypes(java.lang.String[] _s)
          Sets the types for the Resource VirtualFolders, but it is not mandatory.
 void setManageAccounts(boolean _b)
           
 void setManageACLRightsInheritance(boolean _b)
           
 void setManageAcsRights(boolean _b)
           
 void setManageActorInEPVirtualFolders(boolean _b)
           
 void setManageActors(boolean _b)
           
 void setManageAGORights(boolean _b)
           
 void setManageAGORightsInheritance(boolean _b)
           
 void setManageAuthorizationServerTypedPrivileges(boolean _b)
           
 void setManageBridges(boolean _b)
           
 void setManageClassedSpecificTypedPrivileges(boolean _b)
           
 void setManageClassedTypedPrivileges(boolean _b)
           
 void setManageDenyingRightPrivileges(boolean _b)
           
 void setManageDirectoryEPinEPVirtualFolders(boolean _b)
           
 void setManageDirectoryEPs(boolean _b)
           
 void setManageDirectoryInResourceVirtualFolders(boolean _b)
           
 void setManageEPVirtualFolders(boolean _b)
           
 void setManageExternalAcls(boolean _b)
           
 void setManageExternalForOneToOneLinkedPrivileges(boolean _b)
          May be true if the privileges are managed but all the other privilege features are not managed, to allow an own component in the privilege of another ACS.
 void setManageFlexibleConditionalAcls(boolean _b)
           
 void setManageGrantingRightPrivileges(boolean _b)
           
 void setManageGroups(boolean _b)
           
 void setManageGroupTrees(boolean _b)
          Caution: the name of this method is confusing, because a collection of nested groups may be more than one single group tree.
 void setManageIfAllSourceLinkedPrivileges(boolean _b)
           
 void setManageInternalAcls(boolean _b)
           
 void setManageInternalForOneToOneLinkedPrivileges(boolean _b)
           
 void setManageInternalHardAlias(boolean _b)
           
 void setManageLPRIRightsInheritance(boolean _b)
           
 void setManageMetaRights(boolean _b)
           
 void setManageOneTimeInVirtualFolderTreeForMember(boolean _b)
           
 void setManagePrivilegeRights(boolean _b)
           
 void setManagePrivilegesInResources(boolean _b)
           
 void setManagePrivilegesInVirtualFolders(boolean _b)
           
 void setManageResources(boolean _b)
           
 void setManageResourceTrees(boolean _b)
           
 void setManageResourceVirtualFolders(boolean _b)
           
 void setManageRightDefinedConditionalAcls(boolean _b)
           
 void setManageSecGroupsForActor(boolean _b)
           
 void setManageSimpleLinkedPrivileges(boolean _b)
           
 void setManageSimpleResourceVirtualFolders(boolean _b)
           
 void setManageSimpleTypedPrivileges(boolean _b)
           
 void setManageSoftAlias(boolean _b)
          Only an AcsAddon can manage the soft aliasing.
 void setManageVirtualFolderRightsPropagationToMembers(boolean _b)
           
 void setManageVirtualFolders(boolean _b)
           
 void setManageVirtualFolderTrees(boolean _b)
           
 void setParentName(ImmutableName _name)
          Sets the parent name for the ACS in the IS nametree.
 void setTiedToParentACS(boolean _b)
          Sets if the new ACS is tied to its ACS parent or not.
 void setVisibleSpace(java.lang.String _visibleSpace)
          Set the visible space for the ACS in the IS nametree.
 java.lang.String toString()
          Gets the name last component of the instance.
 
Methods inherited from class java.lang.Object
clone, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

A_RIGHTS_SET

public static final java.lang.String A_RIGHTS_SET
for Account rights only, in m_StandardRights_

See Also:
Constant Field Values

GO_RIGHTS_SET

public static final java.lang.String GO_RIGHTS_SET
for rights in m_StandardRights_

See Also:
Constant Field Values

ACL_RIGHTS_SET

public static final java.lang.String ACL_RIGHTS_SET
See Also:
Constant Field Values

PRI_RIGHTS_SET

public static final java.lang.String PRI_RIGHTS_SET
See Also:
Constant Field Values

BDG_RIGHTS_SET

public static final java.lang.String BDG_RIGHTS_SET
See Also:
Constant Field Values

SPE_RIGHTS_SET

public static final java.lang.String SPE_RIGHTS_SET
See Also:
Constant Field Values

PRIME

private static final int PRIME
See Also:
Constant Field Values

INITIAL_CAPACITY_25

private static final int INITIAL_CAPACITY_25
See Also:
Constant Field Values

INITIAL_CAPACITY_5

private static final int INITIAL_CAPACITY_5
See Also:
Constant Field Values

L_EMPTY_ARRAY_2

private static final StringRight[] L_EMPTY_ARRAY_2

L_EMPTY_ARRAY

private static final java.lang.String[] L_EMPTY_ARRAY

ICON_HEIGHT_MAX

protected static final int ICON_HEIGHT_MAX
See Also:
Constant Field Values

ICON_WIDTH_MAX

protected static final int ICON_WIDTH_MAX
See Also:
Constant Field Values

l_AllowedACSInterfacesForSpecializedRights_

protected static java.lang.String[] l_AllowedACSInterfacesForSpecializedRights_
For the specialized rights. This is less complete than ACSFactoryUtilityImpl.L_ACS_GENERIC_CLASSES.


name_

protected ImmutableName name_

type_

protected java.lang.String type_

comment_

protected java.lang.String comment_

iSname_

protected ImmutableName iSname_

parentName_

protected Name parentName_

is_hub_

protected boolean is_hub_

visibleSpace_

protected java.lang.String visibleSpace_

l_resourceTypes_

protected java.lang.String[] l_resourceTypes_

l_epTypes_

protected java.lang.String[] l_epTypes_

l_resvfTypes_

protected java.lang.String[] l_resvfTypes_

l_epvfTypes_

protected java.lang.String[] l_epvfTypes_

l_privilegeForTypeTypes_

protected java.lang.String[] l_privilegeForTypeTypes_

l_privilegeForLinksTypes_

protected java.lang.String[] l_privilegeForLinksTypes_

l_AccountRightsSet_

protected StringRight[] l_AccountRightsSet_

l_GORightsSet_

protected StringRight[] l_GORightsSet_

l_AclRightsSet_

protected StringRight[] l_AclRightsSet_

l_bridgeRightsSet_

protected StringRight[] l_bridgeRightsSet_

l_Rights_

protected StringRight[] l_Rights_

m_PrivilegeRights_

protected java.util.HashMap<java.lang.String,StringRight[]> m_PrivilegeRights_
To define the privilege rights following their main type (standard rights) or second type (specialized rights)

Since:
0.7.0

havePrivilegeSpecializedRights_

protected boolean havePrivilegeSpecializedRights_
true if some specialized rights have been set in the privilege rights; Not used in the GUI nor outside this class.

Since:
0.7.0

m_Structure_

protected java.util.SortedMap<java.lang.String,java.lang.Boolean> m_Structure_
The active booleans which define the generic ACS structure and features. The name of the parameter is the key, and the value indicates if the parameter is managed by this ACS. By default, the value is false. Some complementary, non-generic values are allowed for the AcsAddons. This map may be directly updated at the creation of an AcsAddon ACS, for adding new keys of non-generic immutable properties which are ridden by their proper AcsAddon classes.


m_AssociationsForNewObjects_

protected java.util.HashMap<java.lang.String,java.lang.String[]> m_AssociationsForNewObjects_
Map of mandatory associations on the ACS new objects. Updated by add/removeAssociationsToNewObject().


m_TypesAndExplorer_

protected java.util.HashMap<java.lang.String,java.lang.String[]> m_TypesAndExplorer_
Map of restrictions on the ACS general String properties. Updated from l_resourceTypes_, l_epTypes_, l_resvfTypes_, l_epvfTypes_, l_privilegeForTypeTypes_, l_privilegeForLinksTypes_ and add/removeTypesAndExplorer().


m_StandardRights_

protected java.util.HashMap<java.lang.String,StringRight[]> m_StandardRights_
Map of restrictions on the ACS StringRight properties


m_SpecializedRights_

protected java.util.HashMap<java.lang.String,StringRight[]> m_SpecializedRights_
To extend or to reduce the standard rights following the target/source interface or type


m_RootsForAcsOpeningAndClosing_

protected java.util.HashMap<java.lang.String,java.lang.String[]> m_RootsForAcsOpeningAndClosing_
The map key has the format ACS.Name..XXX which is a parent ACS name having the value XXX. The map values represents a script of instructions.

Since:
0.7.0

m_RootsForAcsOpeningNoClosing_

protected java.util.HashMap<java.lang.String,java.lang.String[]> m_RootsForAcsOpeningNoClosing_
The map key has the format ACS.Name..XXX which is a parent ACS name having the value XXX. The map values represents a script of instructions.

Since:
0.7.0

m_RootsForAcsIntegrity_

protected java.util.HashMap<java.lang.String,java.lang.String[]> m_RootsForAcsIntegrity_
The map key has the format ACS.Name..XXX which is a parent ACS name having the value XXX. The map values represents a script of instructions.

Since:
0.7.0

l_ImmutableRules_

protected java.util.List<java.lang.String> l_ImmutableRules_
List of the ACS rules which are derivated from the structure, like 'AGO right: A rights overlay G rights'.

Since:
0.7.0

m_SubAndGroupPolicy_

protected java.util.HashMap<java.lang.String,java.lang.String[]> m_SubAndGroupPolicy_
Get the immutable subACSs and their dedicated nodes to display in the GUI. In the returned value, the key is the subACS name, in one word, and the value is an array which may contain the following values:

'Resources', 'UserIDs' and 'GroupIDs'.

For instance, 'Resources' means that a node ACSTree.RESOURCES has to be displayed directly under the subACS node, in the explorer.


m_BelongsToComposite_

protected java.util.HashMap<java.lang.String,ImmutableName> m_BelongsToComposite_
Immutable 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 ACS name last component, and the value is the Composite name. The returned map through the dedicated method is not exactly this property, since it is a Map.

Since:
0.7.0

m_ComponentNodes_

protected java.util.HashMap<java.lang.String,java.lang.String[]> m_ComponentNodes_
Map of physical and logical components under the ACS or its parent. Updated by add/removeComponentNodes(). The key starts with 'NewAcsParent.' or 'NewAcs.' to say that the component node is under the parent or the new ACS, and the key ends with the subname of the component, in other words, its name as last component, and its parent, if any, between it and 'NewAcsParent.' or 'NewAcs.'. These optional parents are always components defined in the same map. The value is an array which may contain the following values:

'physical' and 'logical'.

Since:
0.7.0

m_CompositeNodes_

protected java.util.HashMap<java.lang.String,java.lang.String[]> m_CompositeNodes_
Map of the new composite nodes for the IS nametree, outside the current ACS creation in progress. Updated by add/removeCompositeNodes(). The key is the unique composite name. The value is an array which may contain only one value among:

'acs', 'acs.authorization_server' and 'subacs'.

Since:
0.7.0

m_alternateProperties_

protected java.util.HashMap<ImmutableName,java.lang.String[]> m_alternateProperties_
Map of the alternates of the ACS or the subACS, if any, with all the associated properties. Updated by add/removeAlternates(). The key starts with the ACS name last component or the subACS name (no point at the end, on the contrary of getL_MapKeysStartsForAlternates()), and then, the key ends with the name of the alternate in the same IS.

The value is an array which may contain the following values:

- exactly one value among the types in ISFactoryUtilityImpl.getAlternateTypes(),

- one or several right types, among the 3 in ISFactoryUtilityImpl,

- as options, the values OPTIONAL_ALTERNATE and OPTIONAL_GROUND in ISFactoryUtilityImpl.

Then, the values array lenght is from 2 to 6. The returned map through the dedicated method is not exactly this property, since it is a Map<String, String[]>. <GeneralCriterion>

Since:
0.7.0

icon_

protected java.lang.String icon_
The file name of the icon of the aCS in the beamer - selected at the creation or the beamer uses the default value. Exemple of value: 'linux.gif'


imageIcon_

protected javax.swing.ImageIcon imageIcon_
The image the user cannot set directly, and it is used by ActionNewACS to copy the image icon of an open ACS. Used to create the ACS only if icon_ is null.


m_CommentsOnProperties_

protected java.util.HashMap<java.lang.String,java.lang.String[]> m_CommentsOnProperties_
Map of the comments on each ACS property, to explain the simulation. Used with add/removeCommentsOnProperties(). Default value is null.

Since:
0.7.0

m_AcsVocabulary_

protected java.util.HashMap<java.lang.String,java.lang.String[]> m_AcsVocabulary_
The ACS vocabulary defines several independant domains:

- how to name the ACSFactoryUtilityImpl.L_ACS_TREE_GENERIC_UPPER_NODES constants for this ACS, as names of the ACS nodes in the proper ACS internal frame,

- what are the gBase classes to use, since some generic classes may be subclassed in an AcsAddon gBase package (see ACSFactoryUtilityImpl.L_CLASSIC_CLASS_KEYS),

- if the ACS is an AcsAddon, what are the specific new classes in the AcsAddon gBase package (see ACSFactoryUtilityImpl.ACSADDON_EXTENSION_CLASSES). The default value is ACSFactoryUtilityImpl.M_GENERIC_ACS_VOCABULARY, but some of its keys are removed if the ACS does not use the associated classes. Caution: UtilityImpl.getACSVocabularyFromArrayOrInterface() reads this property from an instance created through an empty constructor of this class or one of its subclass.

Since:
0.7.0
See Also:
ACSFactoryUtilityImpl.M_GENERIC_ACS_VOCABULARY

changeSupport_

protected transient java.beans.PropertyChangeSupport changeSupport_
manages all the property change listeners


EMPTY_INSTANCE

protected static ACSFactoryImpl EMPTY_INSTANCE
A reusable empty instance for initialization, to avoid the use of 'new' for temporary values. Caution: never change the state of the returned instance.

Constructor Detail

ACSFactoryImpl

public ACSFactoryImpl()
Default constructor


ACSFactoryImpl

public ACSFactoryImpl(ImmutableName _iSname,
                      ImmutableName _name,
                      java.lang.String _ACStype,
                      ImmutableName _parentName)
               throws BaseError
Called by gDMak.ActionNewACSyst and gWork.AcsFactory.

Parameters:
_iSname - the name of the IS containing this new ACS. May be null, and ISFactoryUtilityImpl.DEFAULT_IS_NAME is then set as IS name and it is created BaseManagerImpl.
_name - the name of the new ACS. Never null.
_ACStype - the ACS type. Never null.
_parentName - the parent of this new ACS. No use if _iSname is null. Otherwise, it has to contain the IS name.
Throws:
BaseError - if _type is null, _parentName does not start with _iSname.
Method Detail

createACS

public ACSImpl createACS()
                  throws BaseError
Creates the ACS with its structural arguments. To construct the ACS, calls ACSImpl.valueOf() then createACSforGenericBase().

Before the ACS creation, calls initializeConstraintsBeforeCreation(), and computes the ACS policy checksum to add to type_. The checksum is computed from the hashcodes of all the values into the properties m_Structure_, m_TypesAndExplorer_, m_AssociationsForNewObjects_, m_StandardRights_, m_SpecializedRights_ and m_SubAndGroupPolicy_. The ACS type ends with ' | checksum'. Calls createACSforGenericBase() to set the ACS structure and relations in its IS. The ACSFactory instance is finalized at the end of createACSforGenericBase(). Overridden by the AcsAddon ACSFactory subclasses.

Returns:
the new configured ACSImpl
Throws:
BaseError - if the integrity rules are not followed (with the list of all the user errors, including up to 2500 words when all the rules are unmatched), if the ACS is already known by BaseManagerImpl.

createACSforGenericBase

protected ACSImpl createACSforGenericBase(ACSImpl _acs)
                                   throws BaseError
Sets the ACS structure and relations in its IS. If the IS is new, creates a new IS in BaseManagerImpl with a hub root node. Registers the ACS in BaseManagerImpl. The parent ACS, if any, has to be open. After the ACS creation, calls initializeConstraintsAfterCreation(). Called by createACS() and by its versions in the AcsAddon subclasses. The ACSFactory instance is finalized at the end of this method.

Parameters:
_acs - new ACS to configure
Returns:
the new configured ACS
Throws:
BaseError - if the integrity rules are not followed (with the list of all the user errors, including up to 2500 words when all the rules are unmatched), if the ACS is already known by BaseManagerImpl.
Since:
0.7.0

checkACSbeforeCreation

public java.lang.String checkACSbeforeCreation()
Controls the integrity of the ACS with all its arguments, before the call to ACSImpl.valueOf(). If the integrity rules are not followed on the ACS structure, return an user message (with the list of all the user errors, including up to 2500 words when all the rules are unmatched). The ACS should have a type. When a type of rights is managed, it is mandatory to have a set of authorized rights for this right type (account rights, for instance), with two cases: through the standard rights array, or through the specialized rights map. It is not mandatory to have some associated types when a kind of ACSObject is managed. It is mandatory to manage Privileges when the VirtualFolders are managed. Controls the constraints on subACSs and groups tree roots, since they must have dedicated types set in the type constraints both for the keys 'Explorer.SubAcsNode' and 'Explorer.AcsGroupTree' which controls the explorer. For the key 'CreationByBeamer.NoType' which forbids the subACS types to be chosen for the ACSObjects the user may create through the beamer, the initializeConstraintsBeforeCreation method sets as forbidden all the types that contains '<byAcsCreator>'. Controls the new object associations and the ACS roots handling. Called by createACS(). Calls ACSFactoruUtilityImpl.controlAcsStructure() and adds complementary controls.

Returns:
null if the ACS arguments are correct, or an error message.

getComment

public java.lang.String getComment()
Returns:
String comment which is associated to the acs. May be null.

setComment

public void setComment(java.lang.String _s)
Set any comment related to this acs. It is a bound property.

Parameters:
_s - comment which is associated to the acs.

getTypesInSpecializedRights

public java.util.Set<java.lang.String> getTypesInSpecializedRights()
The possible specialized right types are 'AccRightsSet', 'GpORightsSet', 'AclRightsSet', 'BdgRightsSet'. The privilege rights use another method.

Returns:
the set of the used right types in the specialized rights. May be empty but never null.

getRightsInSpecializedRights

public java.util.Set<StringRight> getRightsInSpecializedRights()
The possible specialized rights.

Returns:
the set of the used rights in the specialized rights.

initializeConstraintsBeforeCreation

public void initializeConstraintsBeforeCreation()
Initializes the ACS constraints maps before the call to ACSImpl.valueOf(). This method registers each used right in the rights lists, sorts the global rights list, sets the Grant/Deny rights boolean. To forbid these types for any creation through the beamer, this method associates all the '<byAcsCreator>' Resource and EligibleParty types to the key 'CreationByBeamer.NoType' in the specialized types map.

Each map key is a String of ACSObject class interface (like Resource) ended by a bound property name (like ResourceType), with '.' as separator. For m_StandardRights_, each map key includes 'Rights' to facilitate BaseUtilityImpl.getL_AcsRestrictedValues().

The m_TypesAndExplorer_ key 'Actor.ResourceType' is defined, if Actors are managed, as the types being both into the Resource and the EligibleParty types. If one of these two type sets is empty, the other set is simply copied for having the Actor set.

Caution: The design of these ACS constraints has to take account that BaseUtilityImpl.getL_AcsRestrictedValues() detects the correct key to apply after a search among all the interfaces of the ACSObject, and this search is done without any order. The only exception is for Actor that is selected before Resource. Since the first matching key is used to get the constraints, it is not possible to guaranty the continuity of results if two keys are applicable in the map for a given object. Called by createACS(). Calls ACSFactoryUtilityImpl.getAcsImmutableRules().


initializeConstraintsAfterCreation

public void initializeConstraintsAfterCreation(ACS _acs)
                                        throws BaseError
Initializes the ACS constraints maps, after the call to ACSImpl.valueOf(). Creates the subACS nodes as Directories without parent, with the names from the key 'Explorer.SubAcsNode'. The directory may be an AcsAddon Directory, if necessary. Called by createACSforGenericBase().

Parameters:
_acs - to initialize just after its creation
Throws:
BaseError - if thrown by the Directory constructor.

getL_ResourceTypes

public final java.lang.String[] getL_ResourceTypes()
Gets the allowed types for the resources. The '<undefined>' value is always in the array.

Returns:
String[] of allowed types. Never null nor empty.

setL_ResourceTypes

public void setL_ResourceTypes(java.lang.String[] _s)
Sets the types for the resources, but it is not mandatory. The rule is that the 'immutable' word, if it is used, must be at the start or at the end of the type. Otherwise, it is not added and no exception is thrown. No action if limited set of values is not allowed. The 'undefined' value is always added in the array if it is not there, because the Resource BeanInfo says that the resource type is mandatory in the constructor, and it is used in Privileges. If the lenght of a type is superior to 100, it is not added and no exception is thrown. Fires a PropertyChange for 'ResourceTypes'.

Parameters:
_s - is the array of allowed types. May be null or contain one null element.

setHubProperty

public void setHubProperty(boolean _is_hub)
Sets the optional hub property for the ACS in the IS nametree. Fires a PropertyChange for 'HubProperty'.

Parameters:
_is_hub - is the hub property
Since:
0.7.0

setVisibleSpace

public void setVisibleSpace(java.lang.String _visibleSpace)
Set the visible space for the ACS in the IS nametree. The default value is NameISTreeImpl.ALL_THE_IS_SPACE. Fires a PropertyChange for 'VisibleSpace'.

Parameters:
_visibleSpace - is the visible space from the ACS in the IS nametree. Has to be a NameISTreeImpl constant.
Since:
0.7.0

getL_EPTypes

public final java.lang.String[] getL_EPTypes()
Gets the allowed types for the EPs. The '<undefined>' value is always in the array.

Returns:
String[] of allowed types. Never null nor empty.

setL_EPTypes

public void setL_EPTypes(java.lang.String[] _s)
Sets the types for the EPs, but it is not mandatory. The rule is that the 'immutable' word, if it is used, must be at the start or at the end of the type. Otherwise, it is not added and no exception is thrown. The 'undefined' value is always added in the array if it is not there, because the EP BeanInfo says that the type is mandatory in the constructor. The 'byAcsCreator' value is added if the argument contains at most one value with the format 'byAcsCreator ffff'. If the lenght of a type is superior to 100, it is not added and no exception is thrown. Fires a PropertyChange for 'EPTypes'.

Parameters:
_s - allowed types. May be null or contain one null element.

getL_ResourceVirtualFolderTypes

public final java.lang.String[] getL_ResourceVirtualFolderTypes()
Gets the allowed types for the Resource Virtual Folders. The '<undefined>' value is always in the array.

Returns:
String[] of types. Never null nor empty.
Since:
0.7.0

getL_EPVirtualFolderTypes

public final java.lang.String[] getL_EPVirtualFolderTypes()
Gets the allowed types for the Eligible Party Virtual Folders. The '<undefined>' value is always in the array.

Returns:
String[] of types. Never null nor empty.
Since:
0.7.0

setL_ResourceVirtualFolderTypes

public void setL_ResourceVirtualFolderTypes(java.lang.String[] _s)
Sets the types for the Resource VirtualFolders, but it is not mandatory. The rule is that the 'immutable' word, if it is used, must be at the start or at the end of the type. Otherwise, it is not added and no exception is thrown. The 'undefined' value is always added in the array if it is not there, because the VirtualFolder BeanInfo says that the type argument is mandatory in the VirtualFolder constructor. The 'byAcsCreator' value is added if the argument contains at most one value with the format 'byAcsCreator ffff'. If the lenght of a type is superior to 100, it is not added and no exception is thrown. Fires a PropertyChange for 'ResVirtualFolderTypes'.

Parameters:
_s - String[] of types. May be null or contain one null element.
Since:
0.7.0

setL_EPVirtualFolderTypes

public void setL_EPVirtualFolderTypes(java.lang.String[] _s)
Sets the types for the Eligible Party VirtualFolders, but it is not mandatory. The rule is that the 'immutable' word, if it is used, must be at the start or at the end of the type. Otherwise, it is not added and no exception is thrown. The 'undefined' value is always added in the array if it is not there, because the VirtualFolder BeanInfo says that the type argument is mandatory in the VirtualFolder constructor. The 'byAcsCreator' value is added if the argument contains at most one value with the format 'byAcsCreator ffff'. If the lenght of a type is superior to 100, it is not added and no exception is thrown. Fires a PropertyChange for 'EPVirtualFolderTypes'.

Parameters:
_s - String[] of types. May be null or contain one null element.
Since:
0.7.0

getL_PrivilegeForTypeTypes

public final java.lang.String[] getL_PrivilegeForTypeTypes()
Gets the allowed second types for the PrivilegeForTypes. The '<undefined>' value is always in the array.

Returns:
String[] of types. Never null nor empty.
Since:
0.7.0

setL_PrivilegeForTypeTypes

public void setL_PrivilegeForTypeTypes(java.lang.String[] _s)
Sets the second types for the PrivilegeForTypes, but it is not mandatory. The '<undefined>' value is always added in the array if it is not there, because the Privilege BeanInfos state that the type is mandatory in the constructor. The '<byAcsCreator>' value is added if the argument contains at most one value with the format ' ffff'. If the lenght of a type is superior to 100, it is not added and no exception is thrown. Fires a PropertyChange for 'PrivilegeForTypeTypes'.

Parameters:
_s - String[] of types. May be null or contain one null element.
Since:
0.7.0

getL_PrivilegeForLinksTypes

public final java.lang.String[] getL_PrivilegeForLinksTypes()
Gets the allowed second types for the PrivilegeForLinks. The '<undefined>' value is always in the array.

Returns:
String[] of types. Never null nor empty.

setL_PrivilegeForLinksTypes

public void setL_PrivilegeForLinksTypes(java.lang.String[] _s)
Sets the second types for the PrivilegeForLinks, but it is not mandatory. The '<undefined>' value is always added in the array if it is not there, because the Privilege BeanInfos state that the type is mandatory in the constructor. The '<byAcsCreator>' value is added if the argument contains at most one value with the format '<byAcsCreator> ffff'. If the lenght of a type is superior to 100, it is not added and no exception is thrown. Fires a PropertyChange for 'PrivilegeForLinksTypes'.

Parameters:
_s - String[] of types. May be null or contain one null element.
Since:
0.7.0

getFullName

public ImmutableName getFullName()
The full name is unique for the Access Road program. Its is equal to the ACS name.

Specified by:
getFullName in interface BaseObject
Returns:
a copy of the name. May be empty, but not null.

getName

public final ImmutableName getName()
Gets the futur ACS name, including the IS name if any.

Specified by:
getName in interface BaseObject
Returns:
ImmutableName of the acs. May be empty, but not null.

getNickName

public java.lang.String getNickName()
This short name is NOT always unique for the Access Road program.

Specified by:
getNickName in interface BaseObject
Returns:
the ACS name last component. Never null.

getACSType

public java.lang.String getACSType()
Returns the ACS type, as ACSImpl.GENERIC, LINUX,... or a user-defined type.

Specified by:
getACSType in interface ACSRun
Returns:
the type

getIncompleteStructureModeling

public boolean getIncompleteStructureModeling()
The modeling of the structure is incomplete when some ACSObjects miss while they participate to the decision for some important access controls, or simply when these missed ACSObjects are important for the overall ACS security, or when their important relations with some other ACSObjects are not set. On the other hand, the modeling remains complete if some secondary ACSObjects are not modelled, like for instance image files in an operating system file system. When the modeling of an ACS structure is incomplete, all the views which use this ACS are set incomplete in their results.

Returns:
true if the modeling of the ACS structure is incomplete.
Since:
0.7.0

setIncompleteStructureModeling

public void setIncompleteStructureModeling(boolean _b)
Note: if the structure map does not contain the key 'access metarule: incomplete modeling of the ACS structure', this method throws a NullPointerException.

Parameters:
_b - true if the modeling of the ACS structure is incomplete.
Since:
0.7.0

getIncompleteBehaviorModeling

public boolean getIncompleteBehaviorModeling()
The modeling of the behavior is incomplete when important constraints on ACSObjects are not modelled, for instance to set their allowed rights, or their effective default rights. On the other hand, the modeling remains complete if some secondary relations or constraints are not modelled by the program, like for instance the presence of image files in an operating system file system for a given application software. The user may complements manually the properties of an ACSObject for which the behavior has not been totally defined in the ACS model. When the modeling of an ACS behavior is incomplete, the views which use this ACS remain complete in their results, but the creation or deletion of a new ACSObject should be reviewed by the user to ensure that all the properties are still well defined in the ACS.

Returns:
true if the modeling of the ACS behavior is incomplete.
Since:
0.7.0

setIncompleteBehaviorModeling

public void setIncompleteBehaviorModeling(boolean _b)
Parameters:
_b - true if the modeling of the ACS behavior is incomplete.
Since:
0.7.0

getManageResources

public boolean getManageResources()
Returns:
true if the resources are managed.

setManageResources

public void setManageResources(boolean _b)
Parameters:
_b - true if the resources are managed.

getManageResourceTrees

public boolean getManageResourceTrees()
Returns:
true if the resource trees are managed.

setManageResourceTrees

public void setManageResourceTrees(boolean _b)
Parameters:
_b - true if the resource directories are managed.

getManageAccounts

public boolean getManageAccounts()
Returns:
true if the accounts (or users) are managed.

setManageAccounts

public void setManageAccounts(boolean _b)
Parameters:
_b - true if the accounts are managed.

getManageGroups

public boolean getManageGroups()
Returns:
true if the groups of accounts are managed.

setManageGroups

public void setManageGroups(boolean _b)
Parameters:
_b - true if the groups of accounts are managed.

getManageGroupTrees

public boolean getManageGroupTrees()
Caution: the name of this method is confusing, because a collection of nested groups may be more than one single group tree.

Returns:
true if the nested groups are managed.

setManageGroupTrees

public void setManageGroupTrees(boolean _b)
Caution: the name of this method is confusing, because a collection of nested groups may be more than one single group tree.

Parameters:
_b - true if the nested groups are managed.

getManageInternalAcls

public boolean getManageInternalAcls()
Returns:
true if the internal acl entries are managed.

setManageInternalAcls

public void setManageInternalAcls(boolean _b)
Parameters:
_b - true if the internal acl entries are managed.

getManageExternalAcls

public boolean getManageExternalAcls()
Returns:
true if the external acl entries are managed, as controler of other-acs objects, and/or as acs which is controled by other acs.

setManageExternalAcls

public void setManageExternalAcls(boolean _b)
Parameters:
_b - true if the external acl entries are managed.

getManageFlexibleConditionalAcls

public boolean getManageFlexibleConditionalAcls()
Returns:
true if the flexible conditional AclEntries are managed
Since:
0.7.0

setManageFlexibleConditionalAcls

public void setManageFlexibleConditionalAcls(boolean _b)
Parameters:
_b - true if the flexible conditional AclEntries are managed.
Since:
0.7.0

getManageRightDefinedConditionalAcls

public boolean getManageRightDefinedConditionalAcls()
Returns:
true if the right-defined conditional AclEntries are managed.
Since:
0.7.0

setManageRightDefinedConditionalAcls

public void setManageRightDefinedConditionalAcls(boolean _b)
Parameters:
_b - true if the right-defined conditional AclEntries are managed.
Since:
0.7.0

getManageACLRightsInheritance

public boolean getManageACLRightsInheritance()
Returns:
true if the aclentry rights inheritance from the parent are managed (not necessary all these rights).
Since:
0.7.0

setManageACLRightsInheritance

public void setManageACLRightsInheritance(boolean _b)
Parameters:
_b - true if the aclentry rights inheritance from the parent are managed.
Since:
0.7.0

getManageActors

public boolean getManageActors()
Returns:
true if the actors are managed.

setManageActors

public void setManageActors(boolean _b)
Parameters:
_b - true if the actors are managed.

getManageBridges

public boolean getManageBridges()
Returns:
true if the ACS bridges are managed.

setManageBridges

public void setManageBridges(boolean _b)
Parameters:
_b - true if the ACS bridges are managed.

getManageSecGroupsForActor

public boolean getManageSecGroupsForActor()
Returns:
true if the secondary groups are managed for actors (no answer on directoryEPs).

setManageSecGroupsForActor

public void setManageSecGroupsForActor(boolean _b)
Parameters:
_b - true if the secondary groups for actors are managed.

getManageAGORights

public boolean getManageAGORights()
Returns:
true if Account-Group rights are managed (but not necessary all these rights).

setManageAGORights

public void setManageAGORights(boolean _b)
Parameters:
_b - true if the Account/Group rights are managed.

getManageAGORightsInheritance

public boolean getManageAGORightsInheritance()
Returns:
true if Account/Group rights inheritance from the parent are managed (not necessary all these rights).
Since:
0.7.0

setManageAGORightsInheritance

public void setManageAGORightsInheritance(boolean _b)
Parameters:
_b - true if the Account/Group rights inheritance from the parent are managed.
Since:
0.7.0

getManageDirectoryEPs

public boolean getManageDirectoryEPs()
Returns:
true if the directoryEPs are managed.

setManageDirectoryEPs

public void setManageDirectoryEPs(boolean _b)
Parameters:
_b - true if the directoryEP are managed.

getManagePrivilegeRights

public boolean getManagePrivilegeRights()
Returns:
true if the privilege rights are managed.
Since:
0.7.0

setManagePrivilegeRights

public void setManagePrivilegeRights(boolean _b)
Parameters:
_b - true if the privilege rights are managed.
Since:
0.7.0

getManageSimpleLinkedPrivileges

public boolean getManageSimpleLinkedPrivileges()
Returns:
true if the simple linked privilege rights are managed.
Since:
0.7.0

setManageSimpleLinkedPrivileges

public void setManageSimpleLinkedPrivileges(boolean _b)
Parameters:
_b - true if the simple linked privilege rights are managed.
Since:
0.7.0

getManageSimpleTypedPrivileges

public boolean getManageSimpleTypedPrivileges()
Returns:
true if the simple typed privilege rights are managed.
Since:
0.7.0

setManageSimpleTypedPrivileges

public void setManageSimpleTypedPrivileges(boolean _b)
Parameters:
_b - true if the simple typed privilege rights are managed.
Since:
0.7.0

getManageGrantingRightPrivileges

public boolean getManageGrantingRightPrivileges()
Returns:
true if the granting rights in privileges are managed.
Since:
0.7.0

setManageGrantingRightPrivileges

public void setManageGrantingRightPrivileges(boolean _b)
Parameters:
_b - true if the granting rights in privileges are managed.
Since:
0.7.0

getManageDenyingRightPrivileges

public boolean getManageDenyingRightPrivileges()
Returns:
true if the denying rights in privileges are managed.
Since:
0.7.0

setManageDenyingRightPrivileges

public void setManageDenyingRightPrivileges(boolean _b)
Parameters:
_b - true if the denying rights in privileges are managed.
Since:
0.7.0

getManagePrivilegesInResources

public boolean getManagePrivilegesInResources()
Returns:
true if the privilege rights in Resources are managed.
Since:
0.7.0

setManagePrivilegesInResources

public void setManagePrivilegesInResources(boolean _b)
Parameters:
_b - true if the privilege rights in Resources are managed.
Since:
0.7.0

getManagePrivilegesInVirtualFolders

public boolean getManagePrivilegesInVirtualFolders()
Returns:
true if the privilege rights in VirtualFolders are managed.
Since:
0.7.0

setManagePrivilegesInVirtualFolders

public void setManagePrivilegesInVirtualFolders(boolean _b)
Parameters:
_b - true if the privilege rights in VirtualFolders are managed.
Since:
0.7.0

getManageLPRIRightsInheritance

public boolean getManageLPRIRightsInheritance()
Returns:
true if the linked privilege rights inheritance from the parent are managed (not necessary all these rights).
Since:
0.7.0

setManageLPRIRightsInheritance

public void setManageLPRIRightsInheritance(boolean _b)
Parameters:
_b - true if the linked privilege rights inheritance from the parent are managed.
Since:
0.7.0

getManageIfAllSourceLinkedPrivileges

public boolean getManageIfAllSourceLinkedPrivileges()
Returns:
true if the if-all-sources linked privilege rights are managed.
Since:
0.7.0

setManageIfAllSourceLinkedPrivileges

public void setManageIfAllSourceLinkedPrivileges(boolean _b)
Parameters:
_b - true if the if-all-sources linked privilege rights are managed.
Since:
0.7.0

getManageInternalForOneToOneLinkedPrivileges

public boolean getManageInternalForOneToOneLinkedPrivileges()
Returns:
true if the internal for-one-to-one linked privilege rights are managed.
Since:
0.7.0

setManageInternalForOneToOneLinkedPrivileges

public void setManageInternalForOneToOneLinkedPrivileges(boolean _b)
Parameters:
_b - true if the internal for-one-to-one linked privilege rights are managed.
Since:
0.7.0

getManageExternalForOneToOneLinkedPrivileges

public boolean getManageExternalForOneToOneLinkedPrivileges()
Returns:
true if the external for-one-to-one linked privilege rights are managed.
Since:
0.7.0

setManageExternalForOneToOneLinkedPrivileges

public void setManageExternalForOneToOneLinkedPrivileges(boolean _b)
May be true if the privileges are managed but all the other privilege features are not managed, to allow an own component in the privilege of another ACS. Managing inner external privileges always implies that all the own sources of this ACS may have an inner external privilege. To allow an own resource or an own virtual folder of this ACS to get an inner external privilege, the privileges in resources or in virtual folders have to be managed. This allows to limit the inner external privileges to the own sources of the ACS, excluding the own targets, if there are no internal privileges to manage. On the other hand, having internal privileges means that the inner external privileges always accept as target an own resource or own virtual folder.

Parameters:
_b - true if the external one-to-one linked privilege rights are managed as inner privileges or as privileges of another ACS.
Since:
0.7.0

getManageClassedTypedPrivileges

public boolean getManageClassedTypedPrivileges()
Returns:
true if the classed typed privilege rights are managed.
Since:
0.7.0

setManageClassedTypedPrivileges

public void setManageClassedTypedPrivileges(boolean _b)
Parameters:
_b - true if the classed typed privilege rights are managed.
Since:
0.7.0

getManageClassedSpecificTypedPrivileges

public boolean getManageClassedSpecificTypedPrivileges()
Returns:
true if the classed specific typed privilege rights are managed, for designated source and target.
Since:
0.7.0

setManageClassedSpecificTypedPrivileges

public void setManageClassedSpecificTypedPrivileges(boolean _b)
Parameters:
_b - true if the classed specific typed privilege rights are managed, for designated source and target.
Since:
0.7.0

getManageAuthorizationServerTypedPrivileges

public boolean getManageAuthorizationServerTypedPrivileges()
Returns:
true if the typed privilege rights for authorization servers are managed.
Since:
0.7.0

setManageAuthorizationServerTypedPrivileges

public void setManageAuthorizationServerTypedPrivileges(boolean _b)
Parameters:
_b - true if the typed privilege rights for authorization servers are managed.
Since:
0.7.0

getManageVirtualFolders

public boolean getManageVirtualFolders()
Returns:
true if the virtual folders are managed for the ACS.
Since:
0.7.0

setManageVirtualFolders

public void setManageVirtualFolders(boolean _b)
Parameters:
_b - true if the virtual folders are managed.
Since:
0.7.0

getManageResourceVirtualFolders

public boolean getManageResourceVirtualFolders()
Returns:
true if the virtual folders of resources are managed for the ACS.
Since:
0.7.0

setManageResourceVirtualFolders

public void setManageResourceVirtualFolders(boolean _b)
Parameters:
_b - true if the virtual folders of resources are managed.
Since:
0.7.0

getManageEPVirtualFolders

public boolean getManageEPVirtualFolders()
Returns:
true if the virtual folders of eligible parties are managed for the ACS.
Since:
0.7.0

setManageEPVirtualFolders

public void setManageEPVirtualFolders(boolean _b)
Parameters:
_b - true if the virtual folders of eligible parties are managed.
Since:
0.7.0

getManageSimpleResourceVirtualFolders

public boolean getManageSimpleResourceVirtualFolders()
Returns:
true if the virtual folders of simple resources are managed for the ACS.
Since:
0.7.0

setManageSimpleResourceVirtualFolders

public void setManageSimpleResourceVirtualFolders(boolean _b)
Parameters:
_b - true if the virtual folders of simple resources are managed.
Since:
0.7.0

getManageDirectoryInResourceVirtualFolders

public boolean getManageDirectoryInResourceVirtualFolders()
Returns:
true if the resource virtual folders manage directories for the ACS.
Since:
0.7.0

setManageDirectoryInResourceVirtualFolders

public void setManageDirectoryInResourceVirtualFolders(boolean _b)
Parameters:
_b - true if resource virtual folders manage directories are managed.
Since:
0.7.0

getManageDirectoryEPinEPVirtualFolders

public boolean getManageDirectoryEPinEPVirtualFolders()
Returns:
true if the virtual folders of resources manage actors for the ACS.
Since:
0.7.0

setManageDirectoryEPinEPVirtualFolders

public void setManageDirectoryEPinEPVirtualFolders(boolean _b)
Parameters:
_b - true if the virtual folders of resources manage actors.
Since:
0.7.0

getManageActorInEPVirtualFolders

public boolean getManageActorInEPVirtualFolders()
Returns:
true if the EP virtual folders manage actors for the ACS.
Since:
0.7.0

setManageActorInEPVirtualFolders

public void setManageActorInEPVirtualFolders(boolean _b)
Parameters:
_b - true if the virtual folders of eligible parties manage actors.
Since:
0.7.0

getManageVirtualFolderTrees

public boolean getManageVirtualFolderTrees()
Returns:
true if the virtual folder trees are managed for the ACS.
Since:
0.7.0

setManageVirtualFolderTrees

public void setManageVirtualFolderTrees(boolean _b)
Parameters:
_b - true if the virtual folder trees are managed for the ACS.
Since:
0.7.0 "virtual folder: a member is no more than one time"+ "in each virtual folder tree"

getManageOneTimeInVirtualFolderTreeForMember

public boolean getManageOneTimeInVirtualFolderTreeForMember()
Returns:
true if a member is no more than one time in each virtual folder tree.
Since:
0.7.0

setManageOneTimeInVirtualFolderTreeForMember

public void setManageOneTimeInVirtualFolderTreeForMember(boolean _b)
Parameters:
_b - true if a member is no more than one time in each virtual folder tree.
Since:
0.7.0

getManageVirtualFolderRightsPropagationToMembers

public boolean getManageVirtualFolderRightsPropagationToMembers()
Returns:
true if a virtual folder propagates its target rights to all its members.
Since:
0.7.0

setManageVirtualFolderRightsPropagationToMembers

public void setManageVirtualFolderRightsPropagationToMembers(boolean _b)
Parameters:
_b - true if a virtual folder propagates its target rights to all its members.
Since:
0.7.0

getManageSoftAlias

public boolean getManageSoftAlias()
Only an AcsAddon can manage the soft aliasing.

Returns:
true if the acs manages the external or internal soft aliases
Since:
0.7.0

setManageSoftAlias

public void setManageSoftAlias(boolean _b)
Only an AcsAddon can manage the soft aliasing.

Parameters:
_b - true if the acs manages the external soft aliases
Since:
0.7.0

getManageInternalHardAlias

public boolean getManageInternalHardAlias()
Returns:
true if the acs manages the internal hard aliases
Since:
0.7.0

setManageInternalHardAlias

public void setManageInternalHardAlias(boolean _b)
Parameters:
_b - true if the acs manages the internal hard aliases
Since:
0.7.0

getTiedToParentACS

public boolean getTiedToParentACS()
Returns:
true if the acs is tied to its parent acs.
Since:
0.7.0

setTiedToParentACS

public void setTiedToParentACS(boolean _b)
                        throws UpDateError
Sets if the new ACS is tied to its ACS parent or not.

Parameters:
_b - true if the acs is tied to its parent acs.
Throws:
UpDateError - if:

- _b true when the parent is not an ACS, in the IS.

Since:
0.7.0

getIsAuthorizationServer

public boolean getIsAuthorizationServer()
Returns:
true if the acs is an authorization store as a LDAP directory for instance.

setIsAuthorizationServer

public void setIsAuthorizationServer(boolean _b)
Parameters:
_b - true if the acs is an authorization server as a LDAP directory.
Since:
0.7.0

getManageAcsRights

public boolean getManageAcsRights()
Returns:
true if the acs manages ACS rights (it may manage metarights too).
Since:
0.7.0

setManageAcsRights

public void setManageAcsRights(boolean _b)
Parameters:
_b - true if the acs manages ACS rights (it may manage metarights too).

getManageMetaRights

public boolean getManageMetaRights()
Returns:
true if the acs manages metarights (it may manage ACS rights too).

setManageMetaRights

public void setManageMetaRights(boolean _b)
Parameters:
_b - true if the acs manages metarights (it may manage ACS rights too).

getISName

public final ImmutableName getISName()
Gets the name of the information system which owns this acs.

Specified by:
getISName in interface ACSRun
Returns:
a copy of the IS name. May be empty, but not null.
Since:
0.7.0

setISName

public final void setISName(ImmutableName _name)
Sets the name of the information system which owns this acs.

Parameters:
_name - the IS name. May be empty or null.
Since:
0.7.0

getParentName

public ImmutableName getParentName()
Gets the optional parent name for the ACS in the IS nametree.

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

setParentName

public void setParentName(ImmutableName _name)
Sets the parent name for the ACS in the IS nametree.

Parameters:
_name - the parent name. May be null or empty.

getHubProperty

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

Returns:
the is_hub property
Since:
0.7.0

getVisibleSpace

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

Returns:
the visible space property
Since:
0.7.0

getL_Rights

public final StringRight[] getL_Rights()
Gets all the acsrights which are allowed in this ACS. Some of these acsrights may not be used in the final ACS.

Specified by:
getL_Rights in interface ACSRun
Returns:
all the rights used in this acs.

getFullControlRight

public StringRight getFullControlRight()
Gets the first acsright which has 'full_control' as metaright, or this metaright if no acsright complies this condition. 'full_control' metaright has 'deny_all' metaright for opposite, and its single user upper right is 'modify_security_descriptor'.

Specified by:
getFullControlRight in interface ACSRun
Returns:
the right. Never null.

getOneRight

public final StringRight getOneRight(ImmutableName _name)
Gets a right which is registered by this ACS. It may be a StringMetaRight.

Specified by:
getOneRight in interface ACSRun
Parameters:
_name - is the name of the right, provided by StringRight.getName().
Returns:
the right; null if it does not exist.

getOneRight

public final StringRight getOneRight(java.lang.String _right)
Gets a right which is registered by this ACS. It may be a StringMetaRight.

Specified by:
getOneRight in interface ACSRun
Parameters:
_right - is the right, provided by StringRight.getRight().
Returns:
the right; null if it does not exist.

getFirstRightFromMeta

public final StringRight getFirstRightFromMeta(java.lang.String _metaRight)
Gets a right which is registered by this ACS. It may be a StringMetaRight.

Specified by:
getFirstRightFromMeta in interface ACSRun
Parameters:
_metaRight - is the right of the metaright of the searched right, provided by StringRight.getRight().
Returns:
the right; null if it does not exist.

addRight

public void addRight(StringRight _right)
              throws CreateError
Registers a new ACS right through the ACSpreFactoryBeanInfo or from gWork. Updates the structure to indicate the type of rights: ACS right.

Note: The NoThanViewInBases use StringRight.compareTo() between the rights. The right internal key is the first compared property if the rights have the same sens. Thus, a NoThanViewInBase may detect its criterion right is not fulfilled while the effective right has no direct path to the criterion right, in the network of rights. This behavior of NoThanViewInBase shows the need to set a consistent network of rights, including well-chosen internal keys.

The user don't register the metarights through this method. Metarights are added by initializeConstraints() which calls this method before the ACS creation. Not used through ACSFactoryBeanInfo. 'OneAcsRight' is a bound property. Calls newRight().

Specified by:
addRight in interface ACSRun
Parameters:
_right - is the new acsright to register. Not null.
Throws:
CreateError - if the right is null, a metaright or if the right is already used.

removeRight

public void removeRight(StringRight _right)
                 throws UpDateError
Unregisters a right through the ACSpreFactoryBeanInfo. Updates the structure to indicate the type of rights: acsright. Used by the GUI and StringRight.finalizeForUser() method. Not used through ACSFactoryBeanInfo. Call moveRight(). 'OneAcsRight' is a bound property.

Specified by:
removeRight in interface ACSRun
Parameters:
_right - is the right to unregister.
Throws:
UpDateError - if the folder is null or not known.

setL_GroupRightsSet

public void setL_GroupRightsSet(StringRight[] _s)
                         throws UpDateError
Sets the allowed granting right values for the AGO Group rights. "full_control" is the default right, but it is not mandatory. No action if the 'group' rights are not managed, or if the instance has been finalized. A right may be not registered in getL_Rights(). Fires a PropertyChange for 'GORightsSet'.

Parameters:
_s - is an array of rights. Not null, no null elements, but may be a 0-length array nor negative rights.
Throws:
UpDateError - if _s is null, if the GO rights are not allowed, or if there is no fixed set of rights in this acs

getL_GroupRightsSet

public final StringRight[] getL_GroupRightsSet()
Gets the allowed AGO right values for the groups.

Returns:
array of rights. May be empty, but not null.

setL_AccountRightsSet

public void setL_AccountRightsSet(StringRight[] _s)
                           throws UpDateError
Sets the allowed granting right values for the Account (an UserID). "full_control" is the default right, but it is not mandatory. No action if account rights or limited set of values are not managed, or if the instance has been finalized. A right may be not registered in getL_Rights(). Fires a PropertyChange for 'ARightsSet'.

Parameters:
_s - is an array of rights for the UserID which owns this resource, in the main ACS. Not null, no null or negative right, but may be a 0-length array.
Throws:
UpDateError - if _s is null, if the AGO rights are not allowed, or if there is no fixed set of rights in this acs

getL_AccountRightsSet

public final StringRight[] getL_AccountRightsSet()
Gets the allowed granting right values for the Account (an UserID).

Returns:
array of rights. May be empty, but not null.

getL_AllowedACSInterfacesForSpecializedRights

public static final java.lang.String[] getL_AllowedACSInterfacesForSpecializedRights()
Gets the allowed interfaces for the objects which are handled by an acs. For instance, 'Directory' if the acs has the ACS manages the resources tree.

Returns:
array of some interfaces in the Access Road base. The immutable types are not included. Never empty nor null.

addSpecializedRights

public void addSpecializedRights(java.lang.String _criteria,
                                 StringRight[] _l_rights)
                          throws UpDateError
Adds some specialized rights to extend or to constrain the allowed values which are defined for each right type, as in setL_xxxRightsSet(). Specialized rights are always possible, whatever the ACS structure. If internal and external AclRights are not allowed and the criteria contains them, these rights are allowed for internal ACL only, not external ones. In all cases, the 'Acl' specialized rights are not added to the AclRights set. The other right categories are managed following the same way. If it is about types, this method have to be called after the creation of the allowed types. If an immutable type is used as key for AclEntry rights, the single effect is to avoid the user to select rights which will be rejected by the AclEntry class, but then, the user has no information about the cause (the Resource or the EligibleParty is immutable). This is why immutable types as not recommanded as keys for AclEntry rights.

The criteria is a quartet of Strings. Examples of quartets (object.domain.key.subkey) are:

- 'Target.AclRightsSet.Interface.Directory', for ACL rights when the target is a Directory instance

- 'Target.AccRightsSet.Type.script', for Account rights when the target has the type 'script'

- 'Source.AclRightsSet.Type.group', for ACL rights when the source has the type 'group'

The object is Target or Source to indicate that these rights are for the target (or source) which has the correct interface or type.

The domain may be one of the right categories: 'AccRightsSet' for Target only, 'GpORightsSet' for Target only, 'AclRightsSet', 'BdgRightsSet', 'RooRightsSet' for Source and Target.

The subdomain is 'Interface' or 'Type' to indicate that the subkey belongs to one of these categories.

The subkey is an interface name or an EligibleParty type (or Resource type if Target), for which the specialized rights have to be used.

Caution: addPrivilegeRights() define the specialized rights for privileges. These privilege specialized rights never change this current property. A right may be not registered in getL_Rights(). Fires PropertyChanges for 'SpecializedRightsSet'.

Parameters:
_criteria - is the map key to apply these specialized rights.
_l_rights - is a StringRights array, from the correct ACS, which contain the specialized rights for the criteria. They are added to the previous rights, if any. Never null but the lenght may be 0.
Throws:
UpDateError - if:

- the criteria is null, unknown or does not end with '<undefined>',

- a StringRight is not from the ACS.


removeSpecializedRights

public void removeSpecializedRights(java.lang.String _criteria,
                                    StringRight[] _l_rights)
                             throws UpDateError
Removes some specialized rights. The criteria is a quartet of Strings. Examples of quartets (object.domain.key.subkey) are:

- 'Target.AclRightsSet.Interface.Directory', for ACL rights when the target is a Directory instance

- 'Target.AccRightsSet.Type.script', for Account rights when the target has the type 'script'

- 'Source.AclRightsSet.Type.group', for ACL rights when the source has the type 'group'

Fires a PropertyChange for 'SpecializedRightsSet'. The criteria is not removed from the map if the rights argument contains all the current rights which is associated to the criteria. A removed type is not removed from the relevant types list, even if it has been added in the list by addSpecializedRights().

Parameters:
_criteria - for the relevant specialized rights.
_l_rights - StringRights array which contain only the specialized rights to remove for the criteria. Null to remove the criteria. May be empty.
Throws:
UpDateError - if:

- the criteria is null or not known,

- _l_rights is null or one right is null

- a right in _l_rights is not registered.


getM_SpecializedRights

public final java.util.Map getM_SpecializedRights()
Gets the specialized rights extending or constraining the allowed values which are defined for each right type, as in setL_xxxRightsSet(). Specialized rights are always possible, whatever the ACS structure. As map keys, examples of quartets (object.domain.subdomain.subkey) are:

- 'Target.allRights.Interface.Directory', for all rights when the target is a Directory instance

- 'Target.AccRights.Type.script', for Account rights when the target has the type 'script'

- 'Source.AclRights.Type.group', for ACL rights when the source has the type 'group'

The object is Target or Source to indicate that these rights are for the target (or source) which has the correct interface or type.

The domain may be one of the right categories: 'AccRightsSet' for Target only, 'GpORightsSet' for Target only, 'AclRightsSet' for Target only, 'PrvRightsSet', 'BdgRightsSet', 'RooRightsSet' for root.

The subdomain is 'Interface' or 'Type' to demand that the subkey belongs to one of these categories.

The subkey is an interface name or an EligibleParty type (or Resource type if Target), for which the specialized rights have to be used.

Caution: getM_PrivilegeRights() may also return some ACS specialized rights, which will be set in the new ACS. These privilege specialized rights are independant to this current property. A right may be not registered in getL_Rights().

Returns:
a copied Map where the key is a quartet of Strings, and the value is an array of StringRights. May be empty, but not null.

addTypesAndExplorer

public void addTypesAndExplorer(java.lang.String _criteria,
                                java.lang.String[] _l_values)
                         throws UpDateError
Adds the values to manage the display in the explorer, or to set the type-oriented policy following the ACSObject type. The criteria is a double (key.subkey) or a triplet (key.subkey.type).

This includes all the keys for the ACSImpl property m_TypesAndGUIPolicy_, excepted for the five keys 'ResourceType', 'EPType', 'VirtualFolderType', 'PrivilegeForTypeType', 'PrivilegeForLinksType'. This also includes all the items to put in the ACS property m_TypeOrientedPolicy_.

The key word 'immutable' is forbidden in the type of a triplet, since all the policy is applied without this key word. See the addSubAndGroupPolicy method about the specific handling of the keys 'Explorer.SubAcsNode' and 'Explorer.AcsGroupTree'. See the initializeConstraintsBeforeCreation method about the handling of the key 'CreationByBeamer.NoType' to manage all the current 'byAcsCreator' types.

Fires property changes for 'TypesAndExplorerSet'.

Parameters:
_criteria - the map key to apply these specialized values.
_l_values - String array which contain the specialized values for the criteria. May be already known. They are added to the previous values, if any. Never null but the lenght may be 0.
Throws:
UpDateError - if:

- the criteria is null or not allowed,

- a value is not allowed.

See Also:
ACSFactoryUtilityImpl.getL_LimitedValuesForTypesAndExplorer(ARoad0.gBase.ACSFactoryImpl, java.lang.String)

removeTypesAndExplorer

public void removeTypesAndExplorer(java.lang.String _criteria,
                                   java.lang.String[] _l_values)
                            throws UpDateError
Removes some specialized values to manage the display in the explorer, to set the allowed types and the group policy following the type. The criteria is a double (key.subkey).

Fires a PropertyChange for 'TypesAndExplorerSet'. The criteria is not removed from the map if _l_values contains all the current values which is associated to the criteria.

Parameters:
_criteria - for the relevant specialized values.
_l_values - Strings array which contain only the specialized values to remove for the criteria. Null to remove the criteria. May be empty.
Throws:
UpDateError - if:

- the criteria is null or not known,

- a value in _l_values is null,

- a value is unknown.


getM_TypesAndExplorer

public final java.util.Map getM_TypesAndExplorer()
Gets the specialized values to manage the display in the explorer, to set the allowed types and the group policy following the type. The keys list is defined by getL_MapKeysForTypePolicies().

Returns:
a copied Map where the key is a double of Strings, and the value is an array of Strings. May be empty, but not null. A value may be empty but is never null.

getL_MapKeysForTypePolicies

public java.util.Set<java.lang.String> getL_MapKeysForTypePolicies()
This method returns the allowed keys which are used as map keys for specialized types and explorer values. They are used in the two ACS maps m_TypesAndGUIPolicy_ and m_TypeOrientedPolicy_. This does not include the 5 following values which are set in another ACSFactoryImpl methods: 'Resource.ResourceType', 'EligibleParty.EPType', 'VirtualFolderType', 'PrivilegeForTypeType' and 'PrivilegeForLinksType'.

Called by SimplePropertyEditor.getRestrictedValues() from the ACSFactoryImplBeanInfo specification for StringMapPropertyEditor, and by addTypesAndExplorer(). The key word 'immutable' may be in an ACSObject type, but it is never used in the keys for type policies.

The 35 key forms (key.subkey) or (key.subkey.type) are listed hereafter:

- 'Explorer.NoAcsNode',

- 'Explorer.SubAcsNode',

- 'Explorer.AcsGroupTree',

- 'CreationByBeamer.NoType',

- 'GroupIDMember.NoMemberOf',

- 'GroupIDMember.IsNotConditionalAclSource',

- 'GroupID.NoPrimaryGroup',

- 'GroupID.NoMainGroup',

- 'GroupID.NoSecondaryGroup',

- 'GroupID.MemberFromAdmin',

- 'GroupID.NoUserIDAsMember',

- 'GroupID.NoGroupIDAsMember',

- 'GroupID.NoMoreThanOneMember',

- 'GroupID.ConditionalAclGroup',

- 'Resource.OneRightACL',

- 'Resource.NoAccount',

- 'Resource.NoConditionalACL',

- 'Resource.NoNonConditionalACL',

- 'Resource.OneConditionGroupInACL',

- 'Actor.NoCurrentAccount',

- 'Actor.NoCurrentGroup',

- 'Actor.NoNullCurrentAccount',

- 'Actor.IsNotBridgeTarget',

- 'Actor.IsNotBridgeSource',

- 'Actor.IsNotConditionalAclSource',

The following keys are always ended by an allowed type:

- 'GroupID.TypesOfMemberFor.'type for EligibleParty',

- 'GroupIDMember.NoMoreThanOneGroup.'type of groupIDmember',

- 'GroupIDMember.RecommandedGroupsAsMember.'type of groupIDmember',

- 'Directory.TypesOfChildFor.'type of Resource or NULL', - 'VirtualFolder.TypesOfMemberFor.allowed_VirtualFolder_type',

- 'VirtualFolder.TypesOfChildFor.allowed_VirtualFolder_type or NULL',

- 'Resource.SecondTypesOfPrivilegeFor.allowed_Resource_type',

- 'EligibleParty.SecondTypesOfPrivilegeFor.allowed_EligibleParty_type',

- 'VirtualFolder.SecondTypesOfPrivilegeFor.allowed_VirtualFolder_type',

- 'Resource.TypesOfSourceForConditionalACL.allowed_Resource_type'.

Calls BaseUtilityImpl.getObjectTypeWithoutImmutable().

Returns:
set of the allowed keys
See Also:
ACSImpl.getM_TypesAndGUIPolicy(), getL_LimitedValuesForTypesAndExplorer(java.lang.String)

getL_LimitedValuesForTypesAndExplorer

public final java.util.List<java.lang.String> getL_LimitedValuesForTypesAndExplorer(java.lang.String _key)
Gets the specialized types which are allowed by the program for a key in the types-and-explorer map and the group/node policy map. This method is set in the BeanInfo, called by StringMapPropertyEditor from a specification by ACSFactoryImplBeanInfo, and is just a wraper for the ACSFactoryUtilityImpl method. Called by checkACSbeforeCreation() only for the keys 'Explorer.SubAcsNode' and 'Explorer.AcsGroupTree'.

Parameters:
_key - for the constrained values
Returns:
list of the allowed values. Never empty nor null.
See Also:
ACSFactoryUtilityImpl.getL_LimitedValuesForTypesAndExplorer(ARoad0.gBase.ACSFactoryImpl, java.lang.String)

addAssociationsToNewObject

public void addAssociationsToNewObject(java.lang.String _criteria,
                                       java.lang.String[] _l_values)
                                throws UpDateError
Adds one association to handle at the creation or the deletion of ACSObjects in this ACS. The criteria is a map key among six allowed formats. The allowed String map values depends lightly on the map key. The non-empty values define fully or partially one action to do if the key matches. One action is always a constructor or a method to call.

This method provides an assistance to the user to build up a valid set of actions with the proper commands and arguments. See addAssociations() for understanding the complex logic. The control of types in the keys implies that this editor must be called by the user after the definition of the Resource and EligibleParty types in the acs. Most of the keys are totally checked, except the keys 'Resource.ParentNode.<Value>.'. The format is fully described at AssociateUtilityImpl.controlAssociations(). Calls the addAssociations method for the main work. Fires PropertyChanges for 'AssociationForNewObjectsMap'.

Parameters:
_criteria - is the map key to apply these associations
_l_values - a Strings array which contain the values for the criteria, but without the action number 'N.'. Values are added to the previous values, if any. Never null but the lenght may be 0.
Throws:
UpDateError - if:

- a value is not allowed.

See Also:
AssociateUtilityImpl.getL_MapKeyStartsForAssociationsOnNewObject(), AssociationMapPropertyEditor

removeAssociationsToNewObject

public void removeAssociationsToNewObject(java.lang.String _criteria,
                                          java.lang.String[] _l_values)
                                   throws UpDateError
Removes some associations to handle at the creation or the deletion of ACSObjects. The format is fully described at AssociateUtilityImpl.controlAssociations(). Fires a PropertyChange for 'AssociationForNewObjectsMap'. The criteria is not removed from the map if _l_values contains all the current values which is associated to the criteria. After the removing, the set of values is controlled and an error message is added if the set is not compliant. A previous error message may be removed ('Error:' or 'Error to delete:'), and also the action numbers. Call removeAssociations() for the main work.

Parameters:
_criteria - is the map key to apply these associations
_l_values - a Strings array which contain the values for the criteria, with an action number 'N.' or not. Null to remove the criteria. May be empty.
Throws:
UpDateError - if:

- the criteria is null or not known,

- _l_values is null or one value is null

- a value is unknown

- items in _l_lvalues are not in a sequence in the current values array.

See Also:
AssociateUtilityImpl.controlAssociations(ARoad0.gBase.ACSFactoryImpl, java.util.HashMap, java.lang.String, java.lang.String[], boolean)

getM_AssociationsOnNewObject

public final java.util.Map<java.lang.String,java.lang.String[]> getM_AssociationsOnNewObject()
Gets the associations to handle at the creation or the deletion of some ACSObjects, by the mean of actions to do by the program. Each action has a number from 1 to 99. The format is fully described at AssociateUtilityImpl.controlAssociations(). The internal map may contain values where the first 2 characters are not 'N.', but the first no-number value and its followings are returned by this method which is used by ActionMapPropertyEditor to edit the internal map. Calls AssociateUtilityImpl.getM_FilteredAssociations() directly. Called by gWork.AcsFactory.

Specified by:
getM_AssociationsOnNewObject in interface ACSRun
Returns:
a copied Map where the key is a String, and the value is an array of Strings started by a number between 1 to 9 followed by a point. May be empty, but not null.
See Also:
AssociateUtilityImpl.controlAssociations(ARoad0.gBase.ACSFactoryImpl, java.util.HashMap, java.lang.String, java.lang.String[], boolean)

getL_LimitedFirstValuesForAssociation

public final java.util.List<java.lang.String> getL_LimitedFirstValuesForAssociation(java.lang.String _key)
Gets the set of the authorized values for the first value of an association. Called by the AssociateMapPropertyEditor.

Parameters:
_key - for the constrained values. The single workable value is 'ForChildACS'.
Returns:
list of the allowed values. Never empty nor null.
See Also:
AssociateUtilityImpl.getL_LimitedFirstValuesForAssociation(java.lang.String)

setL_AclRightsSet

public void setL_AclRightsSet(StringRight[] _s)
                       throws UpDateError
Sets the fixed set of rights for the AclEntries. A right may be not registered in getL_Rights(). Fires a PropertyChange for 'AclRightsSet'.

Parameters:
_s - is an array of access rights for the AclEntries, in the main ACS. Not null, no null element, but may be a 0-length array.
Throws:
UpDateError - if _s or one element is null, if the ACL rights are not allowed, or if there is no fixed set of rights for this acs

getL_AclRightsSet

public final StringRight[] getL_AclRightsSet()
Returns:
set of allowed access rights for the AclEntries, in the main ACS. May be empty, but not null.

addPrivilegeRights

public void addPrivilegeRights(java.lang.String _criteria,
                               StringRight[] _l_rights)
                        throws UpDateError
Adds some privilege rights constraints, to apply as standard or specialized rights to the privileges which have a given main type or a given second type. The key defines the domain of the constraint. It may be for the standard or for the specialized privilege rights. The possible keys are:

- 'MainType.main type' for each of the 7 PrivilegeAbst main types, which sets the 7 keys 'PrivilegeRights.MainType.main type' for the standard rights in ACSImpl,

- 'PFType/PFLink.SecondType.second type' for the specialized rights, and there is a returned value for each typed privilege second type and each linked privilege second type.

Note: this version manages only simple privileges (TYPED and LINKED types), and the 5 other main types produce an exception. A right may be not registered in getL_Rights(). Calls ACSFactoryUtilityImpl.getL_MapKeysForPrivilegeRights(). Fires PropertyChanges for 'PrivilegeRightsSet' and 'HavePrivilegeSpecializedRights'.

Parameters:
_criteria - is the map key to apply these rights.
_l_rights - is a StringRights array, from the correct ACS, which contain the new rights for the criteria. They are added to the previous rights, if any. Never null but the lenght may be 0.
Throws:
UpDateError - if:

- the criteria is null or not known,

- a StringRight is not from the ACS.

Since:
0.7.0

removePrivilegeRights

public void removePrivilegeRights(java.lang.String _criteria,
                                  StringRight[] _l_rights)
                           throws UpDateError
Removes some privilege rights constraints, to apply as standard or specialized rights to the privileges which have a given main type or a given second type. The key defines the domain of the constraint. It may be for the standard or for the specialized privilege rights. The possible keys are:

- 'MainType.main type' for each of the 6 PrivilegeAbst main types, which sets the 7 keys 'PrivilegeRights.MainType.main type' for the standard rights in ACSImpl,

- 'PFType/PFLink.SecondType.second type' for the specialized rights, and there is a returned value for each typed privilege second type and each linked privilege second type.

Fires a PropertyChange for 'PrivilegedRightsSet' and 'HavePrivilegeSpecializedRights'. The criteria is not removed from the map if _l_rights contains all the current rights which is associated to the criteria. A removed type is not removed from the relevant types list, even if it has been added in the list by addPrivilegeRights().

Parameters:
_criteria - for the relevant privilege rights.
_l_rights - StringRights array which contain only the privilege rights to remove for the criteria. Null to remove the criteria. May be empty.
Throws:
UpDateError - if:

- the criteria is null or not known,

- _l_rights is null or one right is null

- a right in _l_rights is not registered.

Since:
0.7.0

getM_PrivilegeRights

public final java.util.Map getM_PrivilegeRights()
Gets the privilege rights constraints, to apply as standard or specialized rights to the privileges which have a given main type or a given second type. The key defines the domain of the constraint. The key may have one of the following format:

- 'MainType.main type' for each of the 7 PrivilegeAbst main types, which sets the 7 keys 'PrivilegeRights.MainType.main type' for the standard rights in ACSImpl,

- 'PFType/PFLink.PrvRightsSet.Type.second type' for the specialized rights, and there is a returned value for each typed privilege second type and each linked privilege second type.

Note: this version does manage only simple TYPED and simple LINKED privileges. A right may be not registered in getL_Rights().

Returns:
a copied Map where the key is a structured String, and the value is an array of StringRights. May be empty, but not null.
Since:
0.7.0

getL_MapKeysForPrivilegeRights

public java.util.List<java.lang.String> getL_MapKeysForPrivilegeRights()
This method returns the allowed keys for the standard and for the specialized privilege rights:

- 'MainType.main type' for each of the 6 PrivilegeAbst main types, which sets the 6 keys 'PrivilegeRights.MainType.main type' for the standard rights in ACSImpl,

- 'PFType/PFLink.PrvRightsSet.Type.second type' for the specialized rights, and there is a returned value for each typed privilege second type and each linked privilege second type.

Note: the typed privilege types and the linked privilege types have to be all known.

Calls ACSFactoryUtilityImpl.getL_MapKeysForPrivilegeRights(). Called for BaseObjectMapPropertyEditor.actionPerformed() (through StringMapPropertyEditor.addKeyElement() and SimplePropertyEditor.getRestrictedValues()).

Returns:
list of the keys for the privilege rights
Since:
0.7.0

setL_bridgeRightsSet

public void setL_bridgeRightsSet(StringRight[] _s)
                          throws UpDateError
Sets the allowed right values for the bridges from actors to other ACS. A right may be not registered in getL_Rights(). Fires a PropertyChange for 'BridgeRightsSet'.

Parameters:
_s - is an array of access rights for the ACS. Not null, no null or negative right, but may be a 0-length array.
Throws:
UpDateError - if _s or one element is null, if the bridge rights are not allowed, or if there is no fixed set of rights for this acs

getL_bridgeRightsSet

public final StringRight[] getL_bridgeRightsSet()
Returns:
array of access rights for the privileges, in the main ACS. May be empty, but not null.

addSubAndGroupPolicy

public void addSubAndGroupPolicy(java.lang.String _criteria,
                                 java.lang.String[] _l_values)
                          throws UpDateError
Adds a subACS name and its mode (for Resources or for GroupIDs) or a root name for a groups tree, as a node to display in the explorer and the IS structure. The key is the subACS name or a group root name, in one word, and the value is an array which may contain the following values:

<ResourceSubACS>, <GroupSubACS> and <GroupTree>.

<GroupTree> is reserved to the group trees, and the other values are then forbidden. A subACS may have one or two of the two values which are associated to. This method does not define the Resource or EligibleParty type(s) which have to be associated to a subACS or a group tree root. This has to be done by the keys 'Explorer.SubAcsNode' and 'Explorer.AcsGroupTree' in m_TypesAndExplorer_. To prepare the updating of this property by the user, it is necessary to define previously the Resource or EligibleParty type(s) which are dedicated to these subACS or group tree root. The values in m_TypesAndExplorer_ fulfill a policy that the getL_LimitedValuesForTypesAndExplorer method sets. It states that:

- 'Explorer.SubAcsNode' sets some subACS nodes in the explorer from any current type starting with '<byAcsCreator> XXX' for Resources or EligibleParties, where the values have the form 'ResourceType.§lt;byAcsCreator> XXX' or 'GroupType.<byAcsCreator> XXX', to specify the display under a dedicated node '<XXX_subacs>', of all the resources or groups having this relevant type. This type starting is reserved to these children in the explorer.

- 'Explorer.AcsGroupTree' sets some group root nodes in the explorer from any current type starting with '<byAcsCreator> YYY' for EligibleParties, where the values have the form 'GroupType.<byAcsCreator> YYY', to specify the displaying directly under a dedicated node '<YYY_tree>' of all the groupIDs having the relevant type. This type starting is reserved to these children in the explorer.

This is why this method creates the type '<byAcsCreator> NNN' for Resources or EligibleParties, where 'NNN' is the name of the new subACS or groups tree root, and sets it for the new subACS or group tree root through a call to the method addTypesAndExplorer. That creation is mandatory to allow the next updating of m_TypesAndExplorer_. The user may enter manually some other types like '<byAcsCreator> NNN KKKK', if they are necessary in the subACS hierarchy or the group tree. After such an addition, the user may also remove the new '<byAcsCreator> NNN' type. All the types that contains '<byAcsCreator>' will be set by initializeConstraintsBeforeCreation as forbidden to create a new object through the beamer.

May update l_resourceTypes_, l_epTypes_ and calls addTypesAndExplorer(). Fires PropertyChanges for 'SubAndGroupPolicy'.

Parameters:
_criteria - the map key.
_l_values - contains the allowed values for the criteria. Never null but the lenght may be 0.
Throws:
UpDateError - if:

- the criteria is null or not allowed,

- a value is not allowed.

See Also:
ACSFactoryUtilityImpl.getL_LimitedValuesForSubAndGroupPolicy()

removeSubAndGroupPolicy

public void removeSubAndGroupPolicy(java.lang.String _criteria,
                                    java.lang.String[] _l_values)
                             throws UpDateError
Removes a subACS or a groups tree node, and its dedicated node in the explorer. The key is the subACS name or the groups tree name, in one word, and the value is an array which may contain the following values:

<ResourceSubACS>, <GroupSubACS> and <GroupTree>.

Fires a PropertyChange for 'SubAndGroupPolicy'.

Parameters:
_criteria - for the relevant value.
_l_values - contains only the value to remove for the criteria. Null to remove the criteria. May be empty.
Throws:
UpDateError - if:

- the criteria is null or not known,

- a value in _l_values is null,

- a value is not registered.


getM_SubAndGroupPolicy

public 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:

<ResourceSubACS>, <GroupSubACS> and <GroupTree>.

For instance, the value 'yyy' for the key <GroupTree>, means that a group root node '<yyy_tree>' has to be displayed directly under the GroupIDs node, in the explorer. For the two other keys, a value 'xxxx' means that a node '<xxxx_subacs>' 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.

getL_LimitedValuesForSubAndGroupPolicy

public final java.util.List<java.lang.String> getL_LimitedValuesForSubAndGroupPolicy(java.lang.String _key)
This method defines the subacs and the groups tree nodes in the GUI explorer. Called by ACSFactoryImpl for StringMapPropertyEditor. '<ResourceSubACS>' means that a node for this subACS has to be displayed directly under the Resources node, in the explorer. '<GroupSubACS>' for a subACS means that a node has to be displayed directly under the Groups node, in the explorer. '<GroupTree>' for a groups tree means that a node has to be displayed directly under the Groups node, in the explorer, as root of a specific tree.

Returns:
list of the allowed values. Never empty nor null.

getM_BelongsToComposite

public java.util.Map<java.lang.String,ImmutableName[]> getM_BelongsToComposite()
Gets the map which tells 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 ACS name last component, and the value is one Composite name in an array.

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

addBelongsToComposite

public void addBelongsToComposite(java.lang.String _criteria,
                                  ImmutableName[] _l_values)
                           throws UpDateError
Links a composite node in the IS nametree to the ACS or to a subACS. The key is the subACS name, in one word, or the ACS name last component, and the value is one Composite name in an array. Fires PropertyChanges for 'BelongsToComposite'.

Parameters:
_criteria - the map key.
_l_values - array which contains the allowed values for the criteria. Never null. The lenght may be 0 or 1.
Throws:
UpDateError - if:

- the criteria is null or not allowed,

- a value is not allowed, or there is already a value.

Since:
0.7.0
See Also:
ACSFactoryUtilityImpl.getL_LimitedValuesForComponentNodes(ARoad0.gBase.ACSFactoryImpl, java.lang.String)

removeBelongsToComposite

public void removeBelongsToComposite(java.lang.String _criteria,
                                     ImmutableName[] _l_values)
                              throws UpDateError
Removes the link to a composite node in the IS nametree to the ACS or to a subACS. Fire a PropertyChange for 'BelongsToComposite'. The criteria is not removed from the map if _l_values contains all the current values which is associated to the criteria.

Parameters:
_criteria - for the relevant value.
_l_values - array which contains only the value to remove for the criteria. Null to remove the criteria. May be empty.
Throws:
UpDateError - if:

- the criteria is null or not known,

- a value in _l_values is null,

- a value is not registered.

Since:
0.7.0

getL_currentAcsAndSubAcsNickNames

public final java.util.List<java.lang.String> getL_currentAcsAndSubAcsNickNames()
Gets the current ACS and subACS name last compoents. This method is set in the BeanInfo, called by BaseObjectMapPropertyEditor from a specification by ACSFactoryImplBeanInfo.

Returns:
the current ACS and subACS name last compoents. Never null nor empty.
Since:
0.7.0

getL_LimitedValuesForBelongsToComposite

public final java.util.List<ImmutableName> getL_LimitedValuesForBelongsToComposite(java.lang.String _key)
Gets the current composites in the IS, and adds the new composites that this instance will create. If the argument _key is the new ACS last component, then only ACS composite names are returned. Otherwise, only subACS composite names are returned. The composites map is used for the map keys which have a defined type as value in the composite map. The returned current composites have not to be open. This method is set in the BeanInfo, called by BaseObjectMapPropertyEditor from a specification by ACSFactoryImplBeanInfo. Calls BaseManagerImpl.getL_CompositeNodesOfIS() and getISTree(), and ImmutableNameISTree.getType().

Parameters:
_key - the ACS name last component or a subACS name
Returns:
the allowed composite names. Never null and may be empty.
Since:
0.7.0

addComponentNode

public void addComponentNode(java.lang.String _criteria,
                             java.lang.String[] _l_values)
                      throws UpDateError
Adds some component nodes in the IS, from the new ACS node or from its parent. The criteria has the format key.subname, where subname is the String form of a Name which contains one component or more. The property editor allows only one value per key. The allowed values are 'physical' and 'logical', and the property editor controls them.

Calls getL_MapKeysStartsForComponents(). No control on the current component nodes, to set there is no double. Fires PropertyChanges for 'ComponentNodes'.

Parameters:
_criteria - the map key.
_l_values - String array which contains the allowed values for the criteria. Never null. The lenght may be 0 or 1.
Throws:
UpDateError - if:

- the criteria is null or not allowed,

- a value is not allowed, or there is still one value.

Since:
0.7.0
See Also:
ACSFactoryUtilityImpl.getL_LimitedValuesForComponentNodes(ARoad0.gBase.ACSFactoryImpl, java.lang.String)

removeComponentNode

public void removeComponentNode(java.lang.String _criteria,
                                java.lang.String[] _l_values)
                         throws UpDateError
Removes a new component node in the IS nametree. Fires a PropertyChange for 'ComponentNodes'. The criteria is not removed from the map if _l_values contains all the current values which is associated to the criteria.

Parameters:
_criteria - for the relevant specialized values.
_l_values - array which contains only the value to remove for the criteria. Null to remove the criteria. May be empty.
Throws:
UpDateError - if:

- the criteria is null or not known,

- a value in _l_values is null,

- a value is not registered.

Since:
0.7.0

getM_ComponentNodes

public final java.util.Map getM_ComponentNodes()
Gets the new component nodes in the IS nametree.

Returns:
a copied Map where the key is a double of Strings, and the value is an array of one String. May be empty, but not null. A value may be empty but is never null.
Since:
0.7.0

getL_MapKeysStartsForComponents

public java.util.List<java.lang.String> getL_MapKeysStartsForComponents()
This method returns the allowed values which is used as map key startings for component node values. Called by SimplePropertyEditor.getRestrictedValues() from the ACSFactoryImplBeanInfo specification for the StringMapPropertyEditor, by addComponentNode(). The starting formats (key) are a range of values listed hereafter:

- 'IsChildOfNewAcs.', to set a new component under the new ACS,

- 'IsChildOfNewAcsParent.', to set a new component under the parent of the new ACS.

The keys are always ended by the components of the new component name, and they may be more than one since it is possible to define a tree of components from the new ACS or from its parents.

Returns:
List containing the allowed key startings
Since:
0.7.0

getL_LimitedValuesForComponentNodes

public final java.util.List<java.lang.String> getL_LimitedValuesForComponentNodes(java.lang.String _key)
Gets the values which are allowed by the program for a component node. This method is set in the BeanInfo, called by StringTwoKeysMapPropertyEditor from a specification by ACSFactoryImplBeanInfo, and is just a wraper for the ACSFactoryUtilityImpl method.

Parameters:
_key - for the constrained values
Returns:
list of the allowed values. Never empty nor null.
Since:
0.7.0
See Also:
ACSFactoryUtilityImpl.getL_LimitedValuesForTypesAndExplorer(ARoad0.gBase.ACSFactoryImpl, java.lang.String)

addCompositeNode

public void addCompositeNode(java.lang.String _criteria,
                             java.lang.String[] _l_values)
                      throws UpDateError
Adds a new composite node in the IS nametree. The key is an unique composite name, and the property editor allows only one value per key. The value which may be 'acs', 'acs.authorization_server' and 'subacs' as a composite type, and the property editor contols them.

Fires PropertyChanges for 'CompositeNodes'.

Parameters:
_criteria - the map key.
_l_values - String array which contains the allowed values for the criteria. Never null. The lenght may be 0 or 1.
Throws:
UpDateError - if:

- the criteria is null or not allowed,

- a value is not allowed, or there is already a value.

Since:
0.7.0
See Also:
ACSFactoryUtilityImpl.getL_LimitedValuesForComponentNodes(ARoad0.gBase.ACSFactoryImpl, java.lang.String)

removeCompositeNode

public void removeCompositeNode(java.lang.String _criteria,
                                java.lang.String[] _l_values)
                         throws UpDateError
Removes a new component node in the IS nametree. Fires a PropertyChange for 'CompositeNodes'. The criteria is not removed from the map if _l_values contains all the current values which is associated to the criteria.

Parameters:
_criteria - for the relevant value.
_l_values - array which contains only the value to remove for the criteria. Null to remove the criteria. May be empty.
Throws:
UpDateError - if:

- the criteria is null or not known,

- a value in _l_values is null,

- a value is not registered.

Since:
0.7.0

getM_CompositeNodes

public final java.util.Map getM_CompositeNodes()
Gets the new composite nodes in the IS nametree. The single value for each key is the type of the composite; it may be 'acs', 'acs.authorization_server' and 'subacs'.

Returns:
a copied Map where the key is the composite name, and the value is an array which contains none or one String. May be empty, but not null. A value may be empty but is never null.
Since:
0.7.0

getL_LimitedValuesForCompositeNodes

public final java.util.List<java.lang.String> getL_LimitedValuesForCompositeNodes(java.lang.String _key)
Gets the values which are allowed by the program for a composite node. This method is set in the BeanInfo, called by StringMapPropertyEditor from a specification by ACSFactoryImplBeanInfo, and is just a wraper for the ACSFactoryUtilityImpl method.

Parameters:
_key - for the constrained values
Returns:
list of the allowed values. Never empty nor null.
Since:
0.7.0

addAlternate

public void addAlternate(java.lang.String _criteria,
                         java.lang.String[] _l_values)
                  throws UpDateError
Adds an alternate of the ACS or the subACS, if any, with all the associated properties. The key starts with the ACS name last component or the subACS name, ended with a point, and the key ends with the name of a current or new alternate in the same IS.

The value is an array which may contain the following values, in this order:

- exactly one value among the types in ISFactoryUtilityImpl.getAlternateTypes(),

- one or several right types, among the 3 in ISFactoryUtilityImpl,

- as options, the values OPTIONAL_ALTERNATE and OPTIONAL_GROUND in ISFactoryUtilityImpl.

Then, the values array lenght is from 2 to 6. Calls ACSFactoryUtilityImpl.controlAlternateValues(). Fires a Property Change for 'Alternates'.

Parameters:
_criteria - the map key.
_l_values - String array which contains the allowed values for the criteria. Never null but the lenght may be 0.
Throws:
UpDateError - if:

- the criteria is null or not allowed,

- a value is not allowed.

Since:
0.7.0

removeAlternate

public void removeAlternate(java.lang.String _criteria,
                            java.lang.String[] _l_values)
                     throws UpDateError
Removes an alternate of the ACS or the subACS, if any, with all the associated properties. The key starts with the ACS name last component or the subACS name, and the key ends with the name of the alternate in the same IS.

The value is an array which may contain the following values, in this order:

- exactly one value among the types in ISFactoryUtilityImpl.getAlternateTypes(),

- one or several right types, among the 3 in ISFactoryUtilityImpl,

- as options, the values OPTIONAL_ALTERNATE and OPTIONAL_GROUND in ISFactoryUtilityImpl.

Then, the values array lenght is from 2 to 6. Fires a PropertyChange for 'Alternates'. The criteria is not removed from the map if _l_values contains all the current values which is associated to the criteria. All the values are removed if _l_values contains the alternate type, in other words, the mandatory first value of the current array.

Parameters:
_criteria - for the relevant value.
_l_values - array which contains only the value to remove for the criteria. Null to remove the criteria. May be empty.
Throws:
UpDateError - if:

- the criteria is null or not known,

- a value in _l_values is null,

- a value is not registered.

Since:
0.7.0

getM_Alternates

public java.util.Map<java.lang.String,java.lang.String[]> getM_Alternates()
Gets the alternates of the ACS or the subACS, if any, with all the associated properties. The key starts with the ACS name last component or the subACS name, and the key, after a '.' separator, ends with the toString() form of the alternate name.

The value is an array which may contain the following values:

- exactly one value among the types in ISFactoryUtilityImpl.getAlternateTypes(),

- one or several right types, among the 3 in ISFactoryUtilityImpl,

- as options, the values OPTIONAL_ALTERNATE and OPTIONAL_GROUND in ISFactoryUtilityImpl.

The values array lenght is from 2 to 6.

Returns:
the map of the alternate relations. Never null and may be empty.
Since:
0.7.0

getL_MapKeysStartsForAlternates

public java.util.List<java.lang.String> getL_MapKeysStartsForAlternates()
Gets the Alternate key startings with the ACS name last component or the subACS names, all ended with a point.

Returns:
List of the allowed starting values
Since:
0.7.0

getL_LimitedValuesForAlternates

public java.util.List<java.lang.String> getL_LimitedValuesForAlternates(java.lang.String _key)
This method defines the alternate types, the right types for alternates and the options. Call ISFactoryUtilityImpl.getAlternateTypes() and getRightTypesAndOptionsForAlternate(). Only one alternate type should be chosen by the user, and there is no other constraint. Called by StringTwoKeysMapPropertyEditor, from the value returned by ACSFactoryImplBeanInfo.

Parameters:
_key - is unused, and it is here simply to be compliant with the StringMapPropertyEditor handling
Returns:
list of the allowed values. Never empty nor null.
Since:
0.7.0

addOpeningAndClosingRoots

public void addOpeningAndClosingRoots(java.lang.String _criteria,
                                      java.lang.String[] _l_values)
                               throws UpDateError
Adds associations to create opening and closing roots in the parent ACSs.

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

The criteria is a map key with one allowed format ('ACS.Name.<Value>.xxxx'), due to the control by AssociationMapPropertyEditor and ACSFactoryImplBeanInfo. The allowed String map values does not depend on the map key. The non-empty values define fully or partially one action to do if the key matches. One action is always a constructor or a method to call.

Calls addAssociations() for the main work. The format of the keys and values is described at AssociateUtilityImpl.controlAssociations(). Fires PropertyChanges for 'OpeningAndClosingRoots'.

Parameters:
_criteria - is the map key to apply these associations. It must be the parent ACS name.
_l_values - a Strings array which contain the values for the criteria, but without the action number 'N.'. Values are added to the previous values, if any. Never null but the lenght may be 0.
Throws:
UpDateError - if:

- a value is not allowed.

Since:
0.7.0
See Also:
addAssociations(java.util.HashMap, java.lang.String, java.lang.String[]), AssociationMapPropertyEditor

removeOpeningAndClosingRoots

public void removeOpeningAndClosingRoots(java.lang.String _criteria,
                                         java.lang.String[] _l_values)
                                  throws UpDateError
Removes associations to create opening and closing roots in the parent ACSs.

The format is described at AssociateUtilityImpl.controlAssociations(). Fires a PropertyChange for 'OpeningAndClosingRoots'. The criteria is not removed from the map if _l_values contains all the current values which is associated to the criteria. After the removing, the set of values is controlled and an error message is added if the set is not compliant. A previous error message may be removed ('Error:' or 'Error to delete:'), and also the action numbers. Call removeAssociations() for the main work.

Parameters:
_criteria - is the map key to apply these associations
_l_values - a Strings array which contain the values for the criteria, with an action number 'N.' or not. Null to remove the criteria. May be empty.
Throws:
UpDateError - if:

- the criteria is null or not known,

- _l_values is null or one value is null

- a value is unknown

- items in _l_lvalues are not in a sequence in the current values array.

Since:
0.7.0

getM_OpeningAndClosingRoots

public final java.util.Map getM_OpeningAndClosingRoots()
Gets associations to create opening and closing roots in the parent ACSs, by the mean of actions to do by the program. Each action has a number from 1 to 99. The criteria is a map key with one allowed format ('ACS.Name.<Value>.xxxx'). The values format is fully described at AssociateUtilityImpl.controlAssociations(). The internal map may contain values where the first 2 characters are not 'N.', but the first no-number value and its followings are returned by this method which is used by ActionMapPropertyEditor to edit the internal map. Call AssociateUtilityImpl.getM_FilteredAssociations() directly.

Returns:
a copied Map where the key is a String, and the value is an array of Strings started by a number between 1 to 9 followed by a point. May be empty, but not null.
Since:
0.7.0

addOpeningNoClosingRoots

public void addOpeningNoClosingRoots(java.lang.String _criteria,
                                     java.lang.String[] _l_values)
                              throws UpDateError
Adds associations to create opening without closing roots in the parent ACSs.

This relation sets that the parent ACS ACSObject, named root, or one of its property value, has to be there when the ACS is opened, to ensure the ACS ability to run, but has not to be closed or updated (for a property value) at the closing of the ACS nor at the deleting of the ACS.

The criteria is a map key with one allowed format ('ACS.Name.<Value>.xxxx'), due to the control by AssociationMapPropertyEditor and ACSFactoryImplBeanInfo. The allowed String map values does not depend on the map key. The non-empty values define fully or partially one action to do if the key matches. One action is always a constructor or a method to call.

Calls addAssociations(). If this method detects an error, a message starting with 'Error ' is added at the end of the m_RootsForAcsOpeningNoClosing_ map for the key _criteria. The format of the keys and values is described at AssociateUtilityImpl.controlAssociations(). Fires PropertyChanges for 'OpeningNoClosingRoots'.

Parameters:
_criteria - is the map key to apply these associations. It must be the parent ACS name.
_l_values - a Strings array which contain the values for the criteria, but without the action number 'N.'. Values are added to the previous values, if any. Never null but the lenght may be 0.
Throws:
UpDateError - if:

- a value is not allowed.

Since:
0.7.0
See Also:
addAssociations(java.util.HashMap, java.lang.String, java.lang.String[]), AssociationMapPropertyEditor

removeOpeningNoClosingRoots

public void removeOpeningNoClosingRoots(java.lang.String _criteria,
                                        java.lang.String[] _l_values)
                                 throws UpDateError
Removes associations to create opening without closing roots in the parent ACSs.

The format is described at AssociateUtilityImpl.controlAssociations(). Fires a PropertyChange for 'OpeningNoClosingRoots'. The criteria is not removed from the map if _l_values contains all the current values which is associated to the criteria. After the removing, the set of values is controlled and an error message is added if the set is not compliant. A previous error message may be removed ('Error:' or 'Error to delete:'), and also the action numbers. Calls removeAssociations() for the main work.

Parameters:
_criteria - is the map key to apply these associations
_l_values - a Strings array which contain the values for the criteria, with an action number 'N.' or not. Null to remove the criteria. May be empty.
Throws:
UpDateError - if:

- the criteria is null or not known,

- _l_values is null or one value is null

- a value is unknown

- items in _l_lvalues are not in a sequence in the current values array.

Since:
0.7.0

getM_OpeningNoClosingRoots

public final java.util.Map getM_OpeningNoClosingRoots()
Gets associations to create opening without closing roots in the parent ACSs, by the mean of actions to do by the program. Each action has a number from 1 to 99. The criteria is a map key with one allowed format ('ACS.Name.<Value>.xxxx'). The values format is fully described at AssociateUtilityImpl.controlAssociations(). The internal map may contain values where the first 2 characters are not 'N.', but the first no-number value and its followings are returned by this method which is used by ActionMapPropertyEditor to edit the internal map. Calls AssociateUtilityImpl.getM_FilteredAssociations() directly.

Returns:
a copied Map where the key is a String, and the value is an array of Strings started by a number between 1 to 9 followed by a point. May be empty, but not null.
Since:
0.7.0

addIntegrityRoots

public void addIntegrityRoots(java.lang.String _criteria,
                              java.lang.String[] _l_values)
                       throws UpDateError
Adds associations to set integrity root contraints in the parent ACSs.

This relation sets that the parent ACS ACSObject, named root, or one of its property value, has to be properly stated, to ensure the ability of the ACS to run.

The criteria is a map key with one allowed format ('ACS.Name.<Value>.xxxx'), due to the control by AssociationMapPropertyEditor and ACSFactoryImplBeanInfo. The allowed String map values does not depend on the map key. The non-empty values define fully or partially one action to do if the key matches. One action is always a constructor or a method to call.

This method provides an assistance to the user to build up a valid set of integrity controls with the proper commands and arguments. See addAssociations() for understanding the complex logic.

Calls addAssociations(). The format of the keys and values is described at AssociateUtilityImpl.controlAssociations(). Fire PropertyChanges for 'IntegrityRoots'.

Parameters:
_criteria - is the map key to apply these associations. It must be an ACS name.
_l_values - a Strings array which contain the values for the criteria, but without the action number 'N.'. Values are added to the previous values, if any. Never null but the lenght may be 0.
Throws:
UpDateError - if:

- a value is not allowed.

Since:
0.7.0
See Also:
addAssociations(java.util.HashMap, java.lang.String, java.lang.String[]), AssociationMapPropertyEditor

removeIntegrityRoots

public void removeIntegrityRoots(java.lang.String _criteria,
                                 java.lang.String[] _l_values)
                          throws UpDateError
Removes associations to set integrity root contraints in the parent ACSs.

The format is described at AssociateUtilityImpl.controlAssociations(). Fires a PropertyChange for 'IntegrityRoots'. The criteria is not removed from the map if _l_values contains all the current values which is associated to the criteria. After the removing, the set of values is controlled and an error message is added if the set is not compliant. A previous error message may be removed ('Error:' or 'Error to delete:'), and also the action numbers. Calls removeAssociations() for the main work.

Parameters:
_criteria - is the map key to apply these associations
_l_values - a Strings array which contain the values for the criteria, with an action number 'N.' or not. Null to remove the criteria. May be empty.
Throws:
UpDateError - if:

- the criteria is null or not known,

- _l_values is null or one value is null

- a value is unknown

- items in _l_lvalues are not in a sequence in the current values array.

Since:
0.7.0

getM_IntegrityRoots

public final java.util.Map getM_IntegrityRoots()
Gets associations to set integrity root contraints in the parent ACSs. Each action has a number from 1 to 99. The criteria is a map key with one allowed format ('ACS.Name.<Value>.xxxx'). The values format is fully described at AssociateUtilityImpl.controlAssociations(). The internal map may contain values where the first 2 characters are not 'N.', but the first no-number value and its followings are returned by this method which is used by ActionMapPropertyEditor to edit the internal map. Calls AssociateUtilityImpl.getM_FilteredAssociations() directly.

Returns:
a copied Map where the key is a String, and the value is an array of Strings started by a number between 1 to 9 followed by a point. May be empty, but not null.
Since:
0.7.0

getIcon

public java.lang.String getIcon()
Returns:
the file name of the icon associated to the ACS. May be null.
Since:
0.7.0

setEorIcon

public void setEorIcon(javax.swing.ImageIcon _icon)
Parameters:
_icon - file name of the icon associated to the ACS. May be null.
Since:
0.7.0

setIcon

public void setIcon(java.lang.String _icon)
             throws UpDateError
Sets the ACS icon. The icon size is limited by ICON_HEIGHT_MAX and ICON_WIDTH_MAX. The image has to be in the folder 'ARoad0.Gui1.images' or, for an AcsAddon, in 'ARoad0.AcsAddon.Editor_name.AcsAddon_name.gBase'. Fires 'icon'.

Parameters:
_icon - file name (linux.png for instance) of the icon associated to the ACS. May be null, and with leading and trailing whitespaces.
Throws:
UpDateError - if _icon is not the name of a gif, png or jpeg image file in the folder
Since:
0.7.0

addCommentsOnProperties

public void addCommentsOnProperties(java.lang.String _criteria,
                                    java.lang.String[] _l_values)
                             throws UpDateError
Adds some comments to explain how this ACS simulates a real system/software. The criteria is an ACS property displaying name. The value is a String array of free user comments on the settings of the related ACS property.

Fires Property Changes for 'CommentsOnProperties'.

Parameters:
_criteria - should be is an ACS property displaying name.
_l_values - a Strings array of free user comments. Never null but the lenght may be 0.
Throws:
UpDateError - if:

- the criteria is null or not allowed

Since:
0.7.0

removeCommentsOnProperties

public void removeCommentsOnProperties(java.lang.String _criteria,
                                       java.lang.String[] _l_values)
                                throws UpDateError
Removes some comments to explain how this ACS simulates a real system/software. The criteria is an ACS property name. The value is a String array of free user comments on the settings of the related ACS property.

Fires a PropertyChange for 'CommentsOnProperties'. The criteria is not removed from the map if _l_values contains all the current values which is associated to the criteria.

Parameters:
_criteria - for the relevant comments.
_l_values - Strings array which contains only the specialized values to remove for the criteria. Null to remove the criteria. May be empty.
Throws:
UpDateError - if:

- the criteria is null or not known,

- a value in _l_values is null,

- a value is unknown.

Since:
0.7.0

getM_CommentsOnProperties

public final java.util.Map getM_CommentsOnProperties()
Gets comments to explain how this ACS simulates a real system/software. The criteria is an ACS property displaying name. The value is a String array of free user comments on the settings of the related ACS property.

Specified by:
getM_CommentsOnProperties in interface ACSRun
Returns:
a copied Map where the key is a String, and the value is an array of Strings. May be empty, but not null. A value may be empty but is never null.
Since:
0.7.0

getL_MapKeysForCommentsOnProperties

public java.util.List<java.lang.String> getL_MapKeysForCommentsOnProperties()
This method returns the allowed keys which are used as map keys for comments on properties. The keys are all the ACS property displaying names, from the ACSImplBeanInfo. The property 'ImmutableRules' has an empty display name, thus it is not returned and it is not possible to comment it.

Returns:
List of the allowed keys
Since:
0.7.0

addAcsVocabulary

public void addAcsVocabulary(java.lang.String _criteria,
                             java.lang.String[] _l_values)
                      throws BaseError
Sets an ACS vocabulary, without adding to the previous values which are deleted. This may cover several independant domains:

- the AcsAddon name, AcsAddon editor and AcsAddon package editor, in three different keys,

- How to name the L_ACS_TREE_UPPER_NODES_FOR_ONE_ACS constants for this ACS, as names of the ACS tree nodes in the proper ACS internal frame. An example is to replace the tree node 'Actors (right user target)' by 'Scripts'.

- If the ACS is an AcsAddon, what are the generic gBase classes that are subclassed in the AcsAddon gBase package by classic classes (see L_CLASSIC_CLASS_KEYS), like when ResourceImpl is subclassed by ResourceUbuntuImpl in the AcsAddon Ubuntu. The full Java name of the classic class has to be put in the value array.

- If the ACS is an AcsAddon, what are the extension classes in the AcsAddon gBase package (see ACSADDON_EXTENSION_CLASSES). In this case, the class descriptions are separated by one escape, in any order, like in 'Executable/is/Actor XXX/is/Resource'.

Called by the ACSFactory constructor of any AcsAddon. Fires a PropertyChange for 'AcsVocabulary'.

Parameters:
_criteria - one of the ACSFactoryUtilityImpl constants
_l_values - one item or more than one sometimes for the keys ACSADDON_EXTENSION_CLASSES and ACSADDON_SPECIALIZED_RIGHT_DOMAINS. Never null but the lenght may be 0.
Throws:
BaseError - if:

- the criteria is null or not allowed

- the value is null or it contains more than one item

- the value is not allowed for the keys ACSADDON_EXTENSION_CLASSES and ACSADDON_SPECIALIZED_RIGHT_DOMAINS

Since:
0.7.0
See Also:
ACSFactoryUtilityImpl.L_ACS_TREE_UPPER_NODES_FOR_ONE_ACS, ACSFactoryUtilityImpl.L_CLASSIC_CLASS_KEYS, ACSFactoryUtilityImpl.ACSADDON_EXTENSION_CLASSES, ACSFactoryUtilityImpl.ACSADDON_NAME, ACSFactoryUtilityImpl.ACSADDON_EDITOR, ACSFactoryUtilityImpl.ACSADDON_PACKAGE_EDITOR, ACSFactoryUtilityImpl.ACSADDON_SPECIALIZED_RIGHT_DOMAINS

removeAcsVocabulary

public void removeAcsVocabulary(java.lang.String _criteria,
                                java.lang.String[] _l_values)
                         throws BaseError
Removes an ACS vocabulary. This may cover several independant domains:

- the AcsAddon editor and name, in two different keys,

- How to name the L_ACS_TREE_UPPER_NODES_FOR_ONE_ACS constants for this ACS, as names of the ACS tree nodes in the proper ACS internal frame. An example is to replace the tree node 'Actors (right user target)' by 'Scripts'.

- If the ACS is an AcsAddon, what are the generic gBase classes that are subclassed in the AcsAddon gBase package by classic classes (see L_CLASSIC_CLASS_KEYS), like when ResourceImpl is subclassed by ResourceUbuntuImpl in the AcsAddon Ubuntu. The full Java name of the classic class has to be put in the value array.

- If the ACS is an AcsAddon, what are the extension classes in the AcsAddon gBase package (see ACSADDON_EXTENSION_CLASSES). In this case, the class descriptions are separated by one escape, like in 'Executable/is/Actor XXX/is/Resource'.

Fires a PropertyChange for 'AcsVocabulary'.

Parameters:
_criteria - one of the ACSFactoryUtilityImpl constants
_l_values - values to remove. This array is limited to one item by the BeanInfo.
Throws:
BaseError - if:

- the criteria is null or not known,

- a value in _l_values is null,

- a value is unknown.

Since:
0.7.0
See Also:
ACSFactoryUtilityImpl.L_ACS_TREE_UPPER_NODES_FOR_ONE_ACS, ACSFactoryUtilityImpl.L_CLASSIC_CLASS_KEYS, ACSFactoryUtilityImpl.ACSADDON_EXTENSION_CLASSES, ACSFactoryUtilityImpl.ACSADDON_NAME, ACSFactoryUtilityImpl.ACSADDON_EDITOR, ACSFactoryUtilityImpl.ACSADDON_PACKAGE_EDITOR

getM_AcsVocabulary

public final java.util.Map<java.lang.String,java.lang.String[]> getM_AcsVocabulary()
Gets an ACS vocabulary. This may cover several independant domains:

- the AcsAddon name, AcsAddon editor and AcsAddon package editor, in three different keys,

- How to name the L_ACS_TREE_UPPER_NODES_FOR_ONE_ACS constants for this ACS, as names of the ACS tree nodes in the proper ACS internal frame. An example is to replace the tree node 'Actors (right user target)' by 'Scripts'.

- If the ACS is an AcsAddon, what are the generic gBase classes that are subclassed in the AcsAddon gBase package by classic classes (see L_CLASSIC_CLASS_KEYS), like when ResourceImpl is subclassed by ResourceUbuntuImpl in the AcsAddon Ubuntu. The full Java name of the classic class has to be put in the value array.

- If the ACS is an AcsAddon, what are the extension classes in the AcsAddon gBase package (see ACSADDON_EXTENSION_CLASSES). In this case, the class descriptions are separated by one escape, like in 'Executable/is/Actor XXX/is/Resource'.

- If the ACS is an AcsAddon, what are the non-generic rights in the ACSObjects on which the ACS constraints of the specialized rights are applicable, and in that case, what domain is applicable. An example is the domain 'GpORightsSet' for the property 'OtherRights', in Ubuntu, that is declared by the value 'OtherRights.GpORightsSet'.

Specified by:
getM_AcsVocabulary in interface ACSRun
Returns:
an unmodifiable Map where the key is a String, and the value is a String array with at most one item. May be empty but not null. A map value is never null but may be empty.
Since:
0.7.0
See Also:
ACSFactoryUtilityImpl.L_ACS_TREE_UPPER_NODES_FOR_ONE_ACS, ACSFactoryUtilityImpl.L_CLASSIC_CLASS_KEYS, ACSFactoryUtilityImpl.ACSADDON_EXTENSION_CLASSES, ACSFactoryUtilityImpl.ACSADDON_NAME, ACSFactoryUtilityImpl.ACSADDON_EDITOR, ACSFactoryUtilityImpl.ACSADDON_PACKAGE_EDITOR, ACSFactoryUtilityImpl.ACSADDON_SPECIALIZED_RIGHT_DOMAINS

getL_MapKeysForAcsVocabulary

public java.util.List<java.lang.String> getL_MapKeysForAcsVocabulary()
This method returns the allowed keys which are used as map keys for the ACS vocabulary. The values are constants, provided by ACSFactoryUtilityImpl.

Returns:
List containing the allowed keys
Since:
0.7.0
See Also:
ACSFactoryUtilityImpl.L_ACS_TREE_UPPER_NODES_FOR_ONE_ACS, ACSFactoryUtilityImpl.L_CLASSIC_CLASS_KEYS, ACSFactoryUtilityImpl.ACSADDON_EXTENSION_CLASSES, ACSFactoryUtilityImpl.ACSADDON_NAME, ACSFactoryUtilityImpl.ACSADDON_EDITOR, ACSFactoryUtilityImpl.ACSADDON_PACKAGE_EDITOR, ACSFactoryUtilityImpl.ACSADDON_SPECIALIZED_RIGHT_DOMAINS, ACSFactoryUtilityImpl.ACSADDON_VERSION

addPropertyChangeListener

public void addPropertyChangeListener(java.beans.PropertyChangeListener _l)
Adds a listener to the bean, for all the bound properties. Used by ActionNewACSyst.

Specified by:
addPropertyChangeListener in interface BaseBeanManager
Specified by:
addPropertyChangeListener in interface BoundBean
Parameters:
_l - PropertyChangeListener to add

addPropertyChangeListener

public void addPropertyChangeListener(java.lang.String _propertyName,
                                      java.beans.PropertyChangeListener _l)
Adds a listener to the bean. Used by Gui1.CommonPropertyEditor for the properties: 'ParentName', 'HubProperty', 'VisibleSpace', 'ResourceTypes', 'EPTypes', 'TypesAndExplorerSet', 'OneAcsRight', 'SpecializedRightsSet', 'HavePrivilegeSpecializedRights', 'AssociationForNewObjectsMap', 'ARightsSet', 'GORightsSet', 'AclRightsSet', 'PrivilegeRightsSet', 'BridgeRightsSet', 'ManageResources', 'ManageResourceTrees', 'ManageAccounts', 'ManageGroupsOfAccounts', 'ManageGroupsOfGroups', 'ManageInternalAcls', 'ManageExternalAcls', 'ManageFlexibleConditionalAcls', 'ManageRightDefinedConditionalAcls', 'ManageActors', 'ManageBridges', 'ManageSecondaryGroupsForActor', 'ManageAGORight', 'ManageNxExecutables', 'ManageDirectoryEPs', 'ManagePrivilegeRights', 'VirtualFolders', 'ManageGrantRights', 'ManageDenyRights', 'TiedToParentACS', 'RunningOnParentACS', 'isRightServer', 'ComponentNodes', 'CompositeNodes', 'BelongsToComposite', 'SubAndGroupPolicy', 'Alternates', 'OpeningAndClosingRoots', 'OpeningNoClosingRoots', 'IntegrityRoots', 'CommentsOnProperties', 'Icon', 'ManageGrantingRightPrivileges', 'ManageDenyingRightPrivileges', 'ManageSimpleTypedPrivileges', 'ManageSimpleLinkedPrivileges', 'ManageResourceVirtualFolders', 'ManageEPVirtualFolders', 'ManageActorInEPVirtualFolders', 'ManageUserIDInEPVirtualFolders', 'ManageGroupIDInEPVirtualFolders', 'ManageSimpleResourceInResourceVirtualFolders', 'ManageDirectoryInResourceVirtualFolders', 'ManageDirectoryEPinEPVirtualFolders', 'ManageVirtualFolderTrees', 'OneTimeInVirtualFolderTreeForMember', 'ManageACLRightInheritance', 'ManageAGORightInheritance', "ManageLPRIRightInheritance', 'ManagePrivilegesInVirtualFolders', 'ManagePrivilegesInResources', 'ManageIfAllSourceLinkedPrivileges', 'ManageInternalForOneToOneLinkedPrivileges', 'ManageExternalForOneToOneLinkedPrivileges', 'ManageClassedTypedPrivileges', 'ManageClassedSpecificTypedPrivileges', 'ManageAuthorizationServerTypedPrivileges', 'IncompleteStructureModeling', 'IncompleteBehaviorModeling', 'ResVirtualFolderTypes', 'EPVirtualFolderTypes', 'PrivilegeForTypeTypes', 'PrivilegeForLinksTypes', 'AcsVocabulary'.

Specified by:
addPropertyChangeListener in interface ACSRun
Specified by:
addPropertyChangeListener in interface BaseBeanManager
Specified by:
addPropertyChangeListener in interface BoundBean
Parameters:
_propertyName - String is the name of the property
_l - PropertyChangeListener to add. Caution: the listener must NOT have specific hashCode() and equals() methods, to work with HashSet in the removing operations.

removePropertyChangeListener

public void removePropertyChangeListener(java.beans.PropertyChangeListener _l)
Removes a listener to the bean, for all the bound properties. Used by ActionNewACSyst.

Specified by:
removePropertyChangeListener in interface BaseBeanManager
Specified by:
removePropertyChangeListener in interface BoundBean
Parameters:
_l - PropertyChangeListener to remove

removePropertyChangeListener

public void removePropertyChangeListener(java.lang.String _propertyName,
                                         java.beans.PropertyChangeListener _l)
Removes a listener to the bean. Used by Gui1.CommonPropertyEditor for the properties: 'ParentName', 'HubProperty', 'VisibleSpace', 'ResourceTypes', 'EPTypes', 'TypesAndExplorerSet', 'OneAcsRight', 'SpecializedRightsSet', 'HavePrivilegeSpecializedRights', 'AssociationForNewObjectsMap', 'ARightsSet', 'GORightsSet', 'AclRightsSet', 'PrivilegeRightsSet', 'BridgeRightsSet', 'ManageResources', 'ManageResourceTrees', 'ManageAccounts', 'ManageGroupsOfAccounts', 'ManageGroupsOfGroups', 'ManageInternalAcls', 'ManageExternalAcls', 'ManageFlexibleConditionalAcls', 'ManageRightDefinedConditionalAcls', 'ManageActors', 'ManageBridges', 'ManageSecondaryGroupsForActor', 'ManageAGORight', 'ManageNxExecutables', 'ManageDirectoryEPs', 'ManagePrivilegeRights', 'VirtualFolders', 'ManageGrantRights', 'ManageDenyRights', 'TiedToParentACS', 'RunningOnParentACS', 'isRightServer', 'ComponentNodes', 'CompositeNodes', 'BelongsToComposite', 'SubAndGroupPolicy', 'Alternates', 'OpeningAndClosingRoots', 'OpeningNoClosingRoots', 'IntegrityRoots', 'CommentsOnProperties', 'Icon', 'ManageGrantingRightPrivileges', 'ManageDenyingRightPrivileges', 'ManageSimpleTypedPrivileges', 'ManageSimpleLinkedPrivileges', 'ManageResourceVirtualFolders', 'ManageEPVirtualFolders', 'ManageActorInEPVirtualFolders', 'ManageUserIDInEPVirtualFolders', 'ManageGroupIDInEPVirtualFolders', 'ManageSimpleResourceInResourceVirtualFolders', 'ManageDirectoryInResourceVirtualFolders', 'ManageDirectoryEPinEPVirtualFolders', 'ManageVirtualFolderTrees', 'OneTimeInVirtualFolderTreeForMember', 'ManageACLRightInheritance', 'ManageAGORightInheritance', "ManageLPRIRightInheritance', 'ManageIfAllSourceLinkedPrivileges', 'ManageInternalForOneToOneLinkedPrivileges', 'ManageExternalForOneToOneLinkedPrivileges', 'ManageClassedTypedPrivileges', 'ManageClassedSpecificTypedPrivileges', 'ManageAuthorizationServerTypedPrivileges', 'IncompleteStructureModeling', 'IncompleteBehaviorModeling', 'ResVirtualFolderTypes', 'EPVirtualFolderTypes', 'PrivilegeForTypeTypes', 'PrivilegeForLinksTypes', 'AcsVocabulary'.

Specified by:
removePropertyChangeListener in interface ACSRun
Specified by:
removePropertyChangeListener in interface BaseBeanManager
Specified by:
removePropertyChangeListener in interface BoundBean
Parameters:
_propertyName - String is the name of the property
_l - PropertyChangeListener to remove

hashCode

public int hashCode()
Specified by:
hashCode in interface BaseObject
Overrides:
hashCode in class java.lang.Object
Returns:
the hashcode value for the ACS, based on the super method.

equals

public boolean equals(java.lang.Object _obj)
Compare only the type and the name.

Specified by:
equals in interface BaseObject
Overrides:
equals in class java.lang.Object
Parameters:
_obj - object to compare
Returns:
true if the two objects are equal instances of ACSFactoryImpl

toString

public java.lang.String toString()
Gets the name last component of the instance.

Overrides:
toString in class java.lang.Object
Returns:
String

firePropertyChange

protected void firePropertyChange(java.lang.String _propertyName,
                                  java.lang.Object _oldValue,
                                  java.lang.Object _newValue)
Fires an event to every registered listener, in any order. For the bound properties 'ISname', 'ParentName', 'HubProperty', 'VisibleSpace', 'ResourceTypes', 'EPTypes', 'TypesAndExplorerSet', 'OneAcsRight', 'SpecializedRightsSet', 'HavePrivilegeSpecializedRights', 'ARightsSet', 'GORightsSet', 'AclRightsSet', 'PrivilegeRightsSet', 'BridgeRightsSet', 'ManageResources', 'ManageResourceTrees', 'ManageAccounts', 'ManageGroupsOfAccounts', 'ManageGroupsOfGroups', 'ManageInternalAcls', 'ManageExternalAcls', 'ManageFlexibleConditionalAcls', 'ManageRightDefinedConditionalAcls', 'ManageActors', 'ManageBridges', 'ManageSecondaryGroupsForActor', 'ManageAGORight', 'ManageNxExecutables', 'ManageDirectoryEPs', 'ManagePrivilegeRights', 'VirtualFolders', 'ManageGrantRights', 'ManageDenyRights', 'TiedToParentACS', 'RunningOnParentACS', 'isRightServer', 'ComponentNodes', 'CompositeNodes', 'BelongsToComposite', 'SubAndGroupPolicy', 'Alternates', 'OpeningAndClosingRoots', 'OpeningNoClosingRoots', 'IntegrityRoots', 'CommentsOnProperties', 'Icon', 'IncompleteStructureModeling', 'IncompleteBehaviorModeling', 'ManageGrantingRightPrivileges', 'ManageDenyingRightPrivileges', 'ManageSimpleTypedPrivileges', 'ManageSimpleLinkedPrivileges', 'ManageResourceVirtualFolders', 'ManageEPVirtualFolders', 'ManageActorInEPVirtualFolders', 'ManageUserIDInEPVirtualFolders', 'ManageGroupIDInEPVirtualFolders', 'ManageSimpleResourceInResourceVirtualFolders', 'ManageDirectoryInResourceVirtualFolders', 'ManageDirectoryEPinEPVirtualFolders', 'ManageVirtualFolderTrees', 'ManageOneTimeInVirtualFolderTreeForMember', 'ManageACLRightInheritance', 'ManageAGORightInheritance', 'ManageLPRIRightInheritance', 'ManagePrivilegesInVirtualFolders', 'ManagePrivilegesInResources', 'ManageIfAllSourceLinkedPrivileges', 'ManageInternalForOneToOneLinkedPrivileges', 'ManageExternalForOneToOneLinkedPrivileges', 'ManageClassedTypedPrivileges', 'ManageClassedSpecificTypedPrivileges', 'ManageAuthorizationServerTypedPrivileges', 'ManageInternalHardAlias', 'ManageSoftAlias', 'IncompleteStructureModeling', 'IncompleteBehaviorModeling', 'ResVirtualFolderTypes', 'EPVirtualFolderTypes', 'PrivilegeForTypeTypes', 'PrivilegeForLinksTypes', 'AcsVocabulary'. Called by all the updating methods.

Parameters:
_propertyName - name of the changing property
_oldValue - of the property
_newValue - of the property. No operation if equal to _oldValue and not null.

finalize

protected void finalize()
                 throws java.lang.Throwable
This method removes the right from the ACS list, but there is no guaranee that the JVM calls this method before the end of the application.

Overrides:
finalize in class java.lang.Object
Throws:
java.lang.Throwable

finalizeForUser

public void finalizeForUser()
                     throws UpDateError
Closes the instance. The list and map variables are not cleared since they set the ACSImpl variables without cloning. Called by ActionNewACSyst and createACS().

Throws:
UpDateError - if the super class throws it

controlRights

protected void controlRights(StringRight[] _s,
                             boolean _allowDeny)
                      throws UpDateError
Controls the right values for the acs, which have to be registered only if there are acsrights. The rights set has not to be dense, since a right may have no neighbourhood (lower or upper rights) in the array. The right sens is controlled for denying rights, not for granting rights.

Parameters:
_s - is an array of acsrights and metarights
_allowDeny - true if _s may contain denying rights
Throws:
UpDateError - if _s is null, or desactivated, or it is an ACS right not registered, without a metaright or the correct acs.

newRight

protected void newRight(StringRight _right)
Registers a new right through the ACSpreFactoryBeanInfo. Used to register the new acsrights and, in initializeConstraints(), to register the used metarights just before the ACS creation. Updates the structure to indicate the type of rights if it is an acsright. Sorts the rights array. Called by addRight() and initializeConstraints().

Parameters:
_right - is the new right to register. No operation if null or empty.

moveRight

protected void moveRight(StringRight _right)
                  throws UpDateError
Unregisters a right through the ACSpreFactoryBeanInfo. Updates the structure to indicate the type of rights: acsright or metaright. Called by removeRight().

Parameters:
_right - is the folder to unregister.
Throws:
UpDateError - if the folder is null or not known.

addAssociations

protected java.util.HashMap<java.lang.String,java.lang.String[]> addAssociations(java.util.HashMap<java.lang.String,java.lang.String[]> _m_upd_Associations,
                                                                                 java.lang.String _criteria,
                                                                                 java.lang.String[] _l_values)
                                                                          throws UpDateError
Adds one association to handle at the creation or the deletion of ACSObjects. The criteria is a map key among six allowed formats. The allowed String map values depends lightly on the map key. The non-empty values define fully or partially one action to do if the key matches. One action is always a constructor or a method to call.

There is a fully-defined association when the values defines it with all the required arguments. When _l_values is defined partially, this means that the constructor or method is not well defined, or that its arguments are not all defined, or are poorly defined in the values. Every partially-defined array for _l_values is detected by this method, which adds to the array, at its end, a message to the user to tell him the nature of the current error. The property is then updated and displayed to the user, so he should update the values correctly. When there is a fully-defined action, this method adds an action number to each value. So, the validated associations appear to the user as a list of numbered values, which is ended, if any, by the last partially-defined association without action number and with an error message.

The number of actions is limited to 999. See AssociateUtilityImpl.controlAssociations() for a full description of the forms. Fires no Property Change. Called by addAssociationsToNewObject(), addOpeningAndClosingRoots(), addOpeningNoClosingRoots() and addIntegrityRoots().

Parameters:
_m_upd_Associations - actions to do. May be null or empty.
_criteria - is the map key to apply these associations. Never null.
_l_values - a Strings array which contain the values for the criteria, but without the action number 'NNN.'. Values are added to the previous values, if any. Never null but the lenght may be 0.
Returns:
the updated _m_upd_Associations
Throws:
UpDateError - if:

- a value is not allowed.

See Also:
AssociateUtilityImpl.getL_MapKeyStartsForAssociationsOnNewObject(), AssociateUtilityImpl.controlAssociations(ARoad0.gBase.ACSFactoryImpl, java.util.HashMap, java.lang.String, java.lang.String[], boolean), AssociationMapPropertyEditor

removeAssociations

protected java.util.HashMap<java.lang.String,java.lang.String[]> removeAssociations(java.util.HashMap<java.lang.String,java.lang.String[]> _m_upd_Associations,
                                                                                    java.lang.String _criteria,
                                                                                    java.lang.String[] _l_values)
                                                                             throws UpDateError
Removes some associations to handle at the creation or the deletion of ACSObjects. See getM_AssociationsOnNewObject() for a full description of the formats. Does not fire a property change. The criteria is not removed from the map if _l_values contains all the current values which is associated to the criteria. After the removing, the set of values is controlled and an error message is added if the set is not compliant. A previous error message may be removed ('Error:' or 'Error to delete:'), and also the action numbers. Called by removeAssociationsToNewObject(), removeOpeningAndClosingRoots(), removeOpeningNoClosingRoots() and removeIntegrityRoots().

Parameters:
_m_upd_Associations - actions to update. Never null nor empty, and the map value for _criteria is never null.
_criteria - is the map key to apply these associations. Never null.
_l_values - a Strings array which contain the values for the criteria, with an action number 'NNN.' or not. Never null. May be empty.
Returns:
updated _m_upd_Associations
Throws:
UpDateError - if:

- the criteria is null or not known,

- _l_values is null or one value is null

- a value is unknown

- items in _l_lvalues are not in a sequence in the current values array.