ARoad0.AcsAddon.Accbee.Ubuntu.gBase
Class ActorUbuntuImpl

java.lang.Object
  extended by ARoad0.gBase.BasicImpl
      extended by ARoad0.gBase.ResourceImpl
          extended by ARoad0.gBase.ActorImpl
              extended by ARoad0.AcsAddon.Accbee.Ubuntu.gBase.ActorUbuntuImpl
All Implemented Interfaces:
ActorUbuntu, ResourceUbuntu, ACSObject, ACSObjectAddon, Actor, BaseBeanManager, BaseObject, Basic, BoundBean, Copyable, EligibleParty, FinalizedObject, FinalizedObjectForUser, ImmutableActor, ImmutableBasic, ImmutableEligibleParty, ImmutableLeaf, ImmutablePrivilegeSource, ImmutablePrivilegeTarget, ImmutableResource, ImmutableSource, ImmutableTarget, Leaf, PrivilegeSource, PrivilegeTarget, PrivilegeUser, Resource, java.io.Serializable, java.lang.Cloneable, java.lang.Comparable
Direct Known Subclasses:
ExecutableUbuntuImpl

public class ActorUbuntuImpl
extends ActorImpl
implements ActorUbuntu

This class is responsible for modeling a Linux Ubuntu actor which may have access to controled resources. It uses an embedded instance of CAgoUserUbuntuImpl to handle the AGO 'Other' rights and sticky bit in a Linux/Unix operating system. It is a javabean with the following bound properties: 'OtherRights', 'FromTheParentOther', 'InheritedOtherRights'. The listeners are proper to this instance, outside gBase, transient (not serialized in this instance backup). They are called in any order. They receive only a copy of the new value, to protect the property. All the exceptions from the listeners are catched, and a dialog box is displayed to inform the user.. This class has subclasses in this package. All variables are protected. This class has no subclass in this package.

See Also:
Serialized Form

Field Summary
protected  CAgoUserUbuntuImpl agoHandler_
           
static ActorUbuntuImpl EMPTY_INSTANCE
          A reusable empty instance for initialization, to avoid the use of 'new' for temporary values.
static java.io.ObjectStreamField[] serialPersistentFields
          variable for the JDK 2 serialization
private static long serialVersionUID__
           
 
Fields inherited from class ARoad0.gBase.ActorImpl
bridgeTarget_, currentGroupID_, currentUserID_, isRightProxy_, l_bridgeSources_, l_SecondaryGroup_, m_AclEntriesResources_
 
Fields inherited from class ARoad0.gBase.ResourceImpl
actorActivated_, groupID_, l_aclEntry_, l_groupRights_, l_inheritedT_AclEntries_, l_OpenAcsControllerNames_, l_ownerRights_, l_parentTreeAGRightsAllowToGoAcross_, l_rootRights_, m_inheritedT_ACLRights_, parent_, userID_
 
Fields inherited from class ARoad0.gBase.BasicImpl
aCS_, aCS_Name_, aliasHandler_, changeSupport_, comment_, folderMember_, INCREMENT_CAPACITY, INITIAL_CAPACITY, INITIAL_CAPACITY_2, iS_Name_, m_ConstrainedChildACS_, name_, PRIME, privHandler_, type_
 
Constructor Summary
ActorUbuntuImpl()
          Default constructor.
ActorUbuntuImpl(ImmutableName _name, ACS _acs, Directory _parent, UserID _owner, java.lang.String _resourceType, ImmutableActor _bridgeTarget)
          Registers the new instance in the eligible parties map in the main ACS.
ActorUbuntuImpl(ImmutableName _name, ACS _acs, Directory _parent, UserID _owner, java.lang.String _resourceType, ImmutableActor _bridgeTarget, boolean _toRegisterInManager)
          Registers the new instance in the eligible parties map in the main ACS.
 
Method Summary
 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.
 java.lang.Object clone()
          Clones without registering of the new object in the ACSs.
 java.lang.Object copy(ImmutableName _name, ACS _acs, Directory _parent, java.lang.Boolean _toRegisterInManager)
          This method provides a copy of the instance with another name.
protected  ActorUbuntuImpl copyOwnVariables(ActorUbuntuImpl _result, boolean _withoutInternalAcl)
          This method provides a copy of the instance variables.
 boolean equals(java.lang.Object _obj)
          Does not compare the comment.
 void finalizeForBase()
          This method removes the resource from the ACS lists (main and controllers), from its parent, its userID and its groupID.
 void fireL_inheritedOtherRights(StringRight[] _l_old, StringRight[] _l_new)
          Fires the event 'InheritedOtherRights', from the parent of the resource 'other' category.
 java.util.Map<java.lang.String,java.lang.String> getAddonInnerPropertiesToListen()
          Gets the specific events to listen from an ACSObject, because these events should change the rights of an ACSObject in an ACS Addon.
 boolean getAGOAccessFromTheParentOther()
           
 StringRight[] getL_inheritedGroupRights()
          Gets the inherited rights from the parent of the resource group, including the parent sticky bit.
 StringRight[] getL_inheritedOtherRights()
          Gets the inherited rights from the parent of the resource for 'other' AGO rights.
 StringRight[] getL_otherRights()
          Gets the access rights for the EligibleParties which are not the UserID or the GroupID owners of this resource, nor the root UserID.
 long getSerialVersionUID()
          For the java serialization.
 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 setAGOAccessFromTheParentOther(boolean _b)
          Called indirectly by DirectoryUbuntuImpl.setL_otherRights().
 void setEorCurrentGroupIDForUser(ImmutableGroupID _g)
          The current groupID is not null when, typically, the actor is an executable launched under an another groupID.
 void setEorCurrentUserIDForUser(ImmutableUserID _u)
          The current userID is not null when, typically, the actor is an executable launched under an UserID.
 void setEorUserID(ImmutableUserID _u)
          Changes the AGO rights from the _u umask, through the call to setL_xxxRights().
 void setIsRightProxy(boolean _b)
          Noop if the resource type starts with 'byAcsCreator' or 'immutable'.
 void setL_groupRights(StringRight[] _s)
          Sets the rights for the members of the groupID which contains this resource.
 void setL_otherRights(StringRight[] _s)
          Sets the rights for the EligibleParties which are not 'root' nor this-resource UserID, and which are not members of this-resource GroupID.
 
Methods inherited from class ARoad0.gBase.ActorImpl
addAclEntryToEP, addBridgeSource, addEorPrivilegeForLinksToSource, addEorPrivilegeForTypeToSource, copyOwnVariables, copyWithoutInternalAcl, finalizeFromDeserialization, getAuthorizeCurrentGroupID, getEorACSBridgeTarget, getEorCurrentGroupID, getEorCurrentUserID, getEorL_AclConnectedResources, getEorL_bridgeSources, getEorL_SecondaryGroup, getEorL_SourcePrivilegeForLinks, getEorL_SourcePrivilegeForTypes, getEorL_SourcePrivileges, getEPType, getIsACSBridgeSource, getIsRightProxy, getPropertyChangeListeners, hashCode, isMemberToSecondaryGroup, removeAclEntryToEP, removeBridgeSource, removeEorCurrentGroupID, removeEorCurrentUserID, removeEorPrivilegeToSource, removeSecondaryGroup, setEorACSBridgeTarget, setEorACSBridgeTarget, setEorCurrentGroupID, setEorCurrentUserID, setEorL_bridgeSources, setEorL_SecondaryGroup, setEorL_SecondaryGroupForUser, setEPType
 
Methods inherited from class ARoad0.gBase.ResourceImpl
addAclEntry, addAcsController, addEorPrivilegeForLinksToTarget, addEorPrivilegeForTypeToTarget, compareTo, containsAclEntryToEP, copyOwnAcl, copyOwnVariables, fireL_inheritedGroupRights, fireL_inheritedOwnerRights, getActorActivated, getAGOAccessFromTheParentAccount, getAGOAccessFromTheParentGroup, getEorGroupID, getEorImmutableL_TargetInheritedAclEntries, getEorImmutableL_TargetInheritedLinkedPrivileges, getEorL_EPthroughAclEntry, getEorL_TargetInheritedAclEntries, getEorL_TargetInheritedLinkedPrivileges, getEorL_TargetPrivilegeForLinks, getEorL_TargetPrivilegeForTypes, getEorL_TargetPrivileges, getEorParent, getEorUserID, getL_aclEntry, getL_AcsControllers, getL_groupRights, getL_inheritedOwnerRights, getL_ownerRights, getL_rootRights, getM_TargetInheritedACLRights, getM_TargetInheritedLinkedPRIRights, getResourceType, hasTheAccountAndGroupOfParent, removeACL, removeAclEntry, removeAcsController, removeEorGroupID, removeEorPrivilegeToTarget, removeEorUserID, resetInheritedAclEntryRights, resetInheritedPrivilegeRights, selectInheritedAclEntry, selectInheritedPrivilege, setAGOAccessFromTheParentAccount, setAGOAccessFromTheParentGroup, setEorGroupID, setEorParent, setL_ownerRights, setL_rootRights, setResourceType, toString
 
Methods inherited from class ARoad0.gBase.BasicImpl
addAcsOfSoftReferences, addConstrainedChildACS, addEorSoftAlias, addInVFolderList, addInViewList, copyOwnVariables, finalize, finalizeForUser, firePropertyChange, getAcsName, getComment, getEorACS, getEorAliasAsInternalHardReference, getEorReferenceAsInternalHardAlias, getFullName, getHasSoftAlias, getImpliedViews, getIS_Name, getL_AcsOfSoftReferences, getL_SoftAlias, getM_ConstrainedChildACS, getName, getNickName, getType, getVirtualFolders, removeAcsOfSoftReferences, removeConstrainedChildACS, removeEorSoftAlias, removeInVFolderList, removeInViewList, setComment, setEorAliasAsInternalHardReference, setEorReferenceAsInternalHardAlias, setType
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface ARoad0.gBaseInterface.Actor
setEorACSBridgeTarget, setEorL_SecondaryGroupForUser
 
Methods inherited from interface ARoad0.gBaseInterface.Resource
addAclEntry, copyWithoutInternalAcl, removeAclEntry, resetInheritedAclEntryRights, resetInheritedPrivilegeRights, selectInheritedPrivilege, setEorGroupID, setL_ownerRights, setL_rootRights, setResourceType
 
Methods inherited from interface ARoad0.gBaseInterface.PrivilegeTarget
addEorPrivilegeForTypeToTarget, removeEorPrivilegeToTarget
 
Methods inherited from interface ARoad0.gBaseInterface.EligibleParty
copyWithoutInternalAcl, setEPType
 
Methods inherited from interface ARoad0.gBaseInterface.Basic
finalizeForUser, setComment
 
Methods inherited from interface ARoad0.gBaseInterface.PrivilegeSource
addEorPrivilegeForTypeToSource, removeEorPrivilegeToSource
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutableActor
getEorACSBridgeTarget, getEorCurrentGroupID, getEorCurrentUserID, getEorL_bridgeSources, getEorL_SecondaryGroup, getIsACSBridgeSource, getIsRightProxy, isMemberToSecondaryGroup
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutableResource
containsAclEntryToEP, getActorActivated, getAGOAccessFromTheParentAccount, getAGOAccessFromTheParentGroup, getEorGroupID, getEorImmutableL_TargetInheritedAclEntries, getEorL_EPthroughAclEntry, getEorUserID, getL_aclEntry, getL_AcsControllers, getL_groupRights, getL_inheritedOwnerRights, getL_ownerRights, getL_rootRights, getM_ConstrainedChildACS, getM_TargetInheritedACLRights, getResourceType, hasTheAccountAndGroupOfParent, selectInheritedAclEntry
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutablePrivilegeTarget
getEorImmutableL_TargetInheritedLinkedPrivileges, getEorL_TargetPrivilegeForLinks, getEorL_TargetPrivilegeForTypes, getEorL_TargetPrivileges, getM_TargetInheritedLinkedPRIRights, getType
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutableTarget
getEorAliasAsInternalHardReference, getEorReferenceAsInternalHardAlias, getHasSoftAlias, getL_AcsOfSoftReferences, getL_SoftAlias
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutableLeaf
compareTo, getEorParent
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutableEligibleParty
getEorL_AclConnectedResources, getEPType, getM_ConstrainedChildACS
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutableBasic
getComment, getEorAliasAsInternalHardReference, getEorReferenceAsInternalHardAlias, getHasSoftAlias, getImpliedViews, getIS_Name, getL_AcsOfSoftReferences, getL_SoftAlias, getPropertyChangeListeners, getVirtualFolders
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutablePrivilegeSource
getEorL_SourcePrivilegeForLinks, getEorL_SourcePrivilegeForTypes, getEorL_SourcePrivileges
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutableSource
getEorAliasAsInternalHardReference, getEorReferenceAsInternalHardAlias, getHasSoftAlias, getL_AcsOfSoftReferences, getL_SoftAlias, getType
 
Methods inherited from interface ARoad0.gBaseInterface.ACSObject
getAcsName, getEorACS
 
Methods inherited from interface ARoad0.gBaseInterface.BaseObject
getFullName, getName, getNickName, hashCode
 

Field Detail

serialVersionUID__

private static final long serialVersionUID__
See Also:
Constant Field Values

agoHandler_

protected CAgoUserUbuntuImpl agoHandler_

EMPTY_INSTANCE

public static final ActorUbuntuImpl 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.


serialPersistentFields

public static final java.io.ObjectStreamField[] serialPersistentFields
variable for the JDK 2 serialization

Constructor Detail

ActorUbuntuImpl

public ActorUbuntuImpl()
Default constructor.


ActorUbuntuImpl

public ActorUbuntuImpl(ImmutableName _name,
                       ACS _acs,
                       Directory _parent,
                       UserID _owner,
                       java.lang.String _resourceType,
                       ImmutableActor _bridgeTarget)
                throws CreateError
Registers the new instance in the eligible parties map in the main ACS. Used by the beamer editor for the ACS resources list, from the 'New' button, and by the gWork.AcsFactoryUbuntu. Calls the other constructor.

Parameters:
_name - of the actor as a resource.
_acs - main ACS of the actor.
_parent - of the actor.
_owner - owns the resource; may be null.
_resourceType - is also the EP type, and may be null if the ACS allows it.
_bridgeTarget - another-ACS Actor for which this instance is a bridge source; may be null.
Throws:
CreateError: - this(_name, _acs, _parent, _actor_name, _bridgeRef, false).
CreateError

ActorUbuntuImpl

public ActorUbuntuImpl(ImmutableName _name,
                       ACS _acs,
                       Directory _parent,
                       UserID _owner,
                       java.lang.String _resourceType,
                       ImmutableActor _bridgeTarget,
                       boolean _toRegisterInManager)
                throws CreateError
Registers the new instance in the eligible parties map in the main ACS. The actor name _and_ the resource name are structured. _bridgeRef must belong to another ACS than this instance ACS. Note: this instance is added to the main ACS as a resource, in super().

Parameters:
_name - of the actor as a resource.
_acs - ACSUbuntuImpl of the actor.
_parent - the actor parent.
_owner - owns the resource; may be null.
_resourceType - is also the EP type, and may be null if the ACS allows it.
_bridgeTarget - another-ACS Actor for which this instance is a bridge source; may be null.
_toRegisterInManager - false if this method must not register the instance in its ACS.
Throws:
CreateError: - this(_name, _acs, _parent, _actor_name, _bridgeRef, false).
CreateError
Method Detail

setEorUserID

public void setEorUserID(ImmutableUserID _u)
                  throws UpDateError
Changes the AGO rights from the _u umask, through the call to setL_xxxRights(). Overrides the super method and calls it at the start of the method.

Specified by:
setEorUserID in interface Resource
Overrides:
setEorUserID in class ResourceImpl
Parameters:
_u - owns this resource, in the main ACS. May be null.
Throws:
UpDateError - if _u does not belong to this resource main ACS, or if it is immutable for its userID.

setL_groupRights

public void setL_groupRights(StringRight[] _s)
                      throws UpDateError
Sets the rights for the members of the groupID which contains this resource. Fires a PropertyChange for 'GroupRights'. Overrides the super method and call it

Specified by:
setL_groupRights in interface Resource
Overrides:
setL_groupRights in class ResourceImpl
Parameters:
_s - array of acsrights and/or metarights. May be null.
Throws:
UpDateError - if the new rights contain a 'delete' or 'rename' right, while its parent does not allow it through its deleting-renaming flag.

getL_otherRights

public final StringRight[] getL_otherRights()
Gets the access rights for the EligibleParties which are not the UserID or the GroupID owners of this resource, nor the root UserID. Does not take in account if the parent tree does not allow any access.

Specified by:
getL_otherRights in interface ResourceUbuntu
Returns:
the AGO 'other' rights, following the Unix/Linux scheme. No null value. May be empty, or null only if the instance is finalized.

setL_otherRights

public void setL_otherRights(StringRight[] _s)
                      throws UpDateError
Sets the rights for the EligibleParties which are not 'root' nor this-resource UserID, and which are not members of this-resource GroupID. The rights may have the two sens to implement the umask, and may be acsrights or metarights. The ACS constraints on 'OtherRights' are applied only if they are not null, otherwise all the arguments are validated. The negative rights are subtracted from the positive rights. No action if the instance has been finalized. If a new right is not allowed by the ACS, it is removed and the other rights are kept. Noop if the resource type contains 'byAcsCreator' or 'immutable'. No adding of null or negative elements. Calls directly the CAgoUserUbuntuImpl embedded instance. Called by the constructor and the GUI. Fires a PropertyChange for 'OtherRights'.

Specified by:
setL_otherRights in interface ResourceUbuntu
Parameters:
_s - array of acsrights and/or metarights. May be null.
Throws:
UpDateError - if the other rights are immutable, or if there are more than 20 increasing chains to analyze from one lesser right, or if the new rights contain a 'delete' or 'rename' right, while its parent does not allow it through its deleting-renaming flag.

getL_inheritedGroupRights

public StringRight[] getL_inheritedGroupRights()
Gets the inherited rights from the parent of the resource group, including the parent sticky bit. Calls BaseUtilityImpl.getChildRightsSetFromParentRights(), BaseUtilityImpl.subtractNegativeNotRemovingInOneACS() and BaseUtilityImpl.getDenyDeleteRenameRights().

Specified by:
getL_inheritedGroupRights in interface ResourceUbuntu
Specified by:
getL_inheritedGroupRights in interface ImmutableResource
Overrides:
getL_inheritedGroupRights in class ResourceImpl
Returns:
an array of access rights for the GroupID which contains this resource, in the main ACS. May be empty, or null only if the instance is finalized.

getL_inheritedOtherRights

public StringRight[] getL_inheritedOtherRights()
Gets the inherited rights from the parent of the resource for 'other' AGO rights. Calls BaseUtilityImpl.getChildRightsSetFromParentRights(), BaseUtilityImpl.subtractNegativeNotRemovingInOneACS() and BaseUtilityImpl.getDenyDeleteRenameRights().

Specified by:
getL_inheritedOtherRights in interface ResourceUbuntu
Returns:
an array of access rights for the 'other' AGO category, in the main ACS. May be empty, or null only if the instance is finalized.

getAGOAccessFromTheParentOther

public boolean getAGOAccessFromTheParentOther()
Specified by:
getAGOAccessFromTheParentOther in interface ResourceUbuntu
Returns:
true if the parent authorizes its 'other' AGO category to have access to this instance. The default value is true.

clone

public java.lang.Object clone()
Clones without registering of the new object in the ACSs. Caution: don't use any updating method on this clone, because that may destroy the base integrity. A finalized instance returns a clone with getEorACS() which returns null, but getName() and getAcsName() operates.

Overrides:
clone in class ActorImpl
Returns:
Object that is not registred in the ACSs. The other rights are cloned. The external object references are not cloned
Throws:
java.lang.CloneNotSupportedException

equals

public boolean equals(java.lang.Object _obj)
Does not compare the comment. Works even if the instance is finalized.

Specified by:
equals in interface BaseObject
Overrides:
equals in class ActorImpl
Parameters:
_obj -
Returns:
true if _obj is an instance of ActorUbuntuImpl (or a derived class) equals to this instance (with the same class)

finalizeForBase

public void finalizeForBase()
                     throws UpDateError
This method removes the resource from the ACS lists (main and controllers), from its parent, its userID and its groupID. The other rights are updated. Note: when this method is called by the ResourceImpl constructor, the proper variables of this class are not still initialized.

Specified by:
finalizeForBase in interface FinalizedObject
Overrides:
finalizeForBase in class ActorImpl
Throws:
UpDateError - if the main ACS do not known the resource (if it is a clone without setName(), typically)

addPropertyChangeListener

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

Specified by:
addPropertyChangeListener in interface BaseBeanManager
Specified by:
addPropertyChangeListener in interface BoundBean
Overrides:
addPropertyChangeListener in class BasicImpl
Parameters:
_l - PropertyChangeListener to add. Caution: the listener must NOT have specific hashCode() and equals() methods, to work with HashSet in the removing operations.

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: 'OtherRights', 'FromTheParentOther', 'InheritedOtherRights'. Overrides the super method and calls it.

Specified by:
addPropertyChangeListener in interface BaseBeanManager
Specified by:
addPropertyChangeListener in interface BoundBean
Overrides:
addPropertyChangeListener in class ActorImpl
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 ViewInBaseImpl.

Specified by:
removePropertyChangeListener in interface BaseBeanManager
Specified by:
removePropertyChangeListener in interface BoundBean
Overrides:
removePropertyChangeListener in class BasicImpl
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: 'OtherRights', 'FromTheParentOther', 'InheritedOtherRights'. Note: using this method does not remove a listener which has been registered through addPropertyChangeListener(PropertyChangeListener _l). Overrides the super method and calls it.

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

getSerialVersionUID

public long getSerialVersionUID()
Description copied from class: BasicImpl
For the java serialization.

Specified by:
getSerialVersionUID in interface ImmutableBasic
Overrides:
getSerialVersionUID in class ActorImpl
Returns:
the static serialVersionUID__ of this class

getAddonInnerPropertiesToListen

public java.util.Map<java.lang.String,java.lang.String> getAddonInnerPropertiesToListen()
Gets the specific events to listen from an ACSObject, because these events should change the rights of an ACSObject in an ACS Addon. The events are 'OtherRights' without conditions. Then, these events are listened to update the views containing these ACSObjects. This method does not cover the parent properties of a Resource or a VirtualFolder (see ARoad0.gBase.AcsAddon.getAddonParentPropertiesToListen()). To define the events, the map key may have the following values:

- 'THIS' to say that the single object to listen is the ACSObject,

- 'ACS.method_name' to say that the list of objects to listen is returned by the method 'method_name' in the Addon ACS class.

For each map key, the values have the following format:

'AAA.method_name IF BBB'

where:

- AAA: THIS (mandatory),

- method_name: 'get' method name of the ACSObject that is associated, in the relevant BeanInfo class, to the event to listen (mandatory)

- IF BBB: where BBB is TRUE, or FALSE, or NULL, or NOT-NULL, to say that the event must be listened if and only if the returned value of the method_name is respectively a boolean TRUE, or FALSE, or an object NULL, or NOT-NULL (option).

When the map value starts with 'ACS', the ACS method to call has the ACSObject has one argument. Otherwise, the ACS or the ACSObject method has no argument. Called by ARoad0.gBase.EPRViewInBaseImpl, NoThanViewInBaseImpl and ARoad0.gWork.RightsMediatorImpl, through ARoad0.gBase.UtilityImpl.changeAddonInnerPropertyChangeListener().

Specified by:
getAddonInnerPropertiesToListen in interface ACSObjectAddon
Returns:
map to define the specific ACS Addon events to listen. May be null.
See Also:
AcsAddon.getAddonParentPropertiesToListen()

setAGOAccessFromTheParentOther

public void setAGOAccessFromTheParentOther(boolean _b)
Called indirectly by DirectoryUbuntuImpl.setL_otherRights().

Specified by:
setAGOAccessFromTheParentOther in interface ResourceUbuntu
Parameters:
_b - true if the parent authorizes its 'other' AGO category to have access to this instance.

fireL_inheritedOtherRights

public final void fireL_inheritedOtherRights(StringRight[] _l_old,
                                             StringRight[] _l_new)
Fires the event 'InheritedOtherRights', from the parent of the resource 'other' category. Called indirectly by the parent DirectoryUbuntuImpl.setL_otherRights() method.

Specified by:
fireL_inheritedOtherRights in interface ResourceUbuntu
Parameters:
_l_old - an array of the old access rights for the 'other' AGO category, in the main ACS. May be empty.
_l_new - an array of the new access rights for the 'other' AGO category, in the main ACS. May be empty.

copy

public java.lang.Object copy(ImmutableName _name,
                             ACS _acs,
                             Directory _parent,
                             java.lang.Boolean _toRegisterInManager)
                      throws CreateError
This method provides a copy of the instance with another name. Call copyOwnVariables(). This method is overridden by the subclasses.

Specified by:
copy in interface Copyable
Overrides:
copy in class ActorImpl
Parameters:
_name - copy name. Usually creates as an extension of _parent name.
_acs - main ACS of the copy to create. May not be the ACS of this instance.
_parent - is not used, wathever the value.
_toRegisterInManager - false if this method must not register the instance in the ACS.
Returns:
a new instance of ActorUbuntuImpl
Throws:
CreateError - of the constructor with the same parameters, or if _parent ACS is not _acs.

copyOwnVariables

protected ActorUbuntuImpl copyOwnVariables(ActorUbuntuImpl _result,
                                           boolean _withoutInternalAcl)
                                    throws CreateError
This method provides a copy of the instance variables. Overrides the super method and call it

Parameters:
_result - to update with this instance variables copies
_withoutInternalAcl - true if the internal aclEntries - that is with a resource having the same ACS - must not be copied
Returns:
the updated _result
Throws:
CreateError - of addAclEntry()

setEorCurrentUserIDForUser

public void setEorCurrentUserIDForUser(ImmutableUserID _u)
                                throws UpDateError
The current userID is not null when, typically, the actor is an executable launched under an UserID. Called by ExecutableUbuntuImpl.setEnforceUID(). Calls ACSUbuntuImpl.add/removeActorFromOtherInCurrentContext(this) and UtilityImpl.withExecuteRight(). Overrides the super method and calls it first.

Specified by:
setEorCurrentUserIDForUser in interface Actor
Overrides:
setEorCurrentUserIDForUser in class ActorImpl
Parameters:
_u - the current userID of the actor. May be null.
Throws:
UpDateError - if the resource type starts with 'byAcsCreator' or 'immutable', or from setEorCurrentUserID().

setEorCurrentGroupIDForUser

public void setEorCurrentGroupIDForUser(ImmutableGroupID _g)
                                 throws UpDateError
The current groupID is not null when, typically, the actor is an executable launched under an another groupID. Calls ACSUbuntuImpl.add/removeActorFromOtherInCurrentContext(this) and UtilityImpl.withExecuteRight(). Overrides the super method and calls it first.

Specified by:
setEorCurrentGroupIDForUser in interface Actor
Overrides:
setEorCurrentGroupIDForUser in class ActorImpl
Parameters:
_g - the current groupID of the actor. May be null.
Throws:
UpDateError - if the current GroupID is immutable.

setIsRightProxy

public void setIsRightProxy(boolean _b)
                     throws UpDateError
Noop if the resource type starts with 'byAcsCreator' or 'immutable'. Calls ACSImpl.add/removeActorFromOtherInCurrentContext() and UtilityImpl.withExecuteRight(). Overrides the super method and calls it

Specified by:
setIsRightProxy in interface Actor
Overrides:
setIsRightProxy in class ActorImpl
Parameters:
_b - true if this Actor may be a proxy in the access paths, that is, as rights user, it gets some rights to the other rights users which have an 'execute' right on it
Throws:
UpDateError - if the right proxy flag is immutable.