ARoad0.AcsAddon.Accbee.Ubuntu.gBase
Class DirectoryUbuntuImpl

java.lang.Object
  extended by ARoad0.gBase.BasicImpl
      extended by ARoad0.gBase.ResourceImpl
          extended by ARoad0.gBase.DirectoryImpl
              extended by ARoad0.AcsAddon.Accbee.Ubuntu.gBase.DirectoryUbuntuImpl
All Implemented Interfaces:
DirectoryUbuntu, ResourceUbuntu, ACSObject, ACSObjectAddon, BaseBeanManager, BaseObject, Basic, BoundBean, Copyable, Directory, FinalizedObject, FinalizedObjectForUser, ImmutableBasic, ImmutableDirectory, ImmutableLeaf, ImmutableNode, ImmutablePrivilegeTarget, ImmutableResource, ImmutableTarget, Leaf, Node, PrivilegeTarget, PrivilegeUser, Resource, java.io.Serializable, java.lang.Cloneable, java.lang.Comparable

public class DirectoryUbuntuImpl
extends DirectoryImpl
implements DirectoryUbuntu

This class is responsible for modeling a Linux/Unix directory which contains children (resources and others directories). As a Linux/Unix directory, it may change its group and it has an umask and a sticky bit. All variables are private to secure the white box inheritances from this class. It uses an embedded instance of CAgoUserUbuntuImpl to handle the AGO 'Other' rights and the sticky bit. It is a javabean with the following bound properties: 'OtherRights', 'FromTheParentOther', 'InheritedOtherRights', 'StickyBit'. 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 no subclass in this package.

See Also:
Directory, Resource, Serialized Form

Field Summary
protected  CAgoUserUbuntuImpl agoHandler_
           
static DirectoryUbuntuImpl 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__
           
protected  boolean stickyBit_
          The Linux/Unix sticky bit to control the rename and deleting operations: it is true to set that the directory children are deleted or renaming only by their owner.
 
Fields inherited from class ARoad0.gBase.DirectoryImpl
EnforceChildGID_, nodeHandler_
 
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
DirectoryUbuntuImpl()
          The basic constructor
DirectoryUbuntuImpl(ImmutableName _name, ACS _acs, Directory _parent, UserID _owner, java.lang.String _resourceType)
          This constructor sets this instance as the ACS own resources root if _parent is null.
DirectoryUbuntuImpl(ImmutableName _name, ACS _acs, Directory _parent, UserID _owner, java.lang.String _resourceType, boolean _toRegisterInManager)
          This constructor sets this instance as the ACS own resources root if _parent is null.
 
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  DirectoryUbuntuImpl copyOwnVariables(DirectoryUbuntuImpl _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 view 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.
 boolean getStickyBit()
           
 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 setEorUserID(ImmutableUserID _u)
          Changes the AGO rights from the _u umask, through the call to setL_xxxRights().
 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.
 void setStickyBit(boolean _a)
          Sets the sticky bit.
 
Methods inherited from class ARoad0.gBase.DirectoryImpl
addEorChild, copyOwnVariables, copyWithoutInternalAcl, finalizeFromDeserialization, getEnforceChildGID, getEorL_Children, getPropertyChangeListeners, hashCode, removeEorChild, resetInheritedAclEntryRights, resetInheritedAclEntryRightsOfChildren, resetInheritedPrivilegeRights, resetInheritedPrivilegeRightsOfChildren, setEnforceChildGID, setEorL_Children, setL_ownerRights, toString
 
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, selectInheritedAclEntry, selectInheritedPrivilege, setAGOAccessFromTheParentAccount, setAGOAccessFromTheParentGroup, setEorGroupID, setEorParent, setL_rootRights, setResourceType
 
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.Directory
resetInheritedAclEntryRightsOfChildren, resetInheritedPrivilegeRightsOfChildren, setEnforceChildGID
 
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.Basic
finalizeForUser, setComment
 
Methods inherited from interface ARoad0.gBaseInterface.PrivilegeTarget
addEorPrivilegeForTypeToTarget, removeEorPrivilegeToTarget
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutableDirectory
getEnforceChildGID, getEorL_Children
 
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.ImmutableBasic
getComment, getEorAliasAsInternalHardReference, getEorReferenceAsInternalHardAlias, getHasSoftAlias, getImpliedViews, getIS_Name, getL_AcsOfSoftReferences, getL_SoftAlias, getPropertyChangeListeners, getVirtualFolders
 
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.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_

stickyBit_

protected boolean stickyBit_
The Linux/Unix sticky bit to control the rename and deleting operations: it is true to set that the directory children are deleted or renaming only by their owner.


EMPTY_INSTANCE

public static final DirectoryUbuntuImpl 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

DirectoryUbuntuImpl

public DirectoryUbuntuImpl()
The basic constructor


DirectoryUbuntuImpl

public DirectoryUbuntuImpl(ImmutableName _name,
                           ACS _acs,
                           Directory _parent,
                           UserID _owner,
                           java.lang.String _resourceType)
                    throws CreateError
This constructor sets this instance as the ACS own resources root if _parent is null. Used by the beamer editor for the ACS resources list, from the 'New' button, or from the gWork.AcsFactoryUbuntu.

Parameters:
_name - of the directory
_acs - is the main ACS of the directory
_parent - of the directory; may be null.
_resourceType - is the type, and may be null if the ACS allows it.
_owner - owns the resource; may be null.
Throws:
CreateError - if ACSImpl.newEorResource() throws it - the instance must then be deleted !

DirectoryUbuntuImpl

public DirectoryUbuntuImpl(ImmutableName _name,
                           ACS _acs,
                           Directory _parent,
                           UserID _owner,
                           java.lang.String _resourceType,
                           boolean _toRegisterInManager)
                    throws CreateError
This constructor sets this instance as the ACS own resources root if _parent is null. Called by the other constructor. Update the AGO rights from the userID umask.

Parameters:
_name - of the directory
_acs - is the main ACS of the directory
_parent - of the directory; may be null.
_resourceType - is the type, and may be null if the ACS allows it.
_owner - owns the resource; may be null.
_toRegisterInManager - false if this method must not register the instance in the ACS.
Throws:
CreateError - if ACSImpl.newEorResource() throws it - the instance must then be deleted !
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 calls it

Specified by:
setL_groupRights in interface Resource
Overrides:
setL_groupRights in class DirectoryImpl
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, that calls the children methods setAGOAccessFromTheParentOther() and fireL_inheritedOtherRights(). 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 DirectoryImpl
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 DirectoryImpl
Parameters:
_obj -
Returns:
true if _obj is an instance of DirectoryUbuntuImpl (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 DirectoryImpl
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', 'StickyBit'. Overrides the super method and calls it.

Specified by:
addPropertyChangeListener in interface BaseBeanManager
Specified by:
addPropertyChangeListener in interface BoundBean
Overrides:
addPropertyChangeListener in class DirectoryImpl
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', 'StickyBit'. 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 DirectoryImpl
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 DirectoryImpl
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 view rights of an ACSObject in an ACS Addon. This method is not ridden by the beamer. The events are 'OtherRights', 'StickyBit' 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.

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. Do not copy the own resources or the current actors. The copy order is 3 times the source order. _aliasRef may belong to another ACS than this instance ACS. Call copyOwnVariables(). This method is overridden by the subclasses.

Specified by:
copy in interface Copyable
Overrides:
copy in class DirectoryImpl
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 DirectoryUbuntuImpl
Throws:
CreateError - of the constructor with the same parameters, or if _parent ACS is not _acs, or addAclEntry() exceptions.

copyOwnVariables

protected DirectoryUbuntuImpl copyOwnVariables(DirectoryUbuntuImpl _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()

setStickyBit

public void setStickyBit(boolean _a)
Sets the sticky bit. No updating of the current children AGO rights.

Specified by:
setStickyBit in interface DirectoryUbuntu
Parameters:
_a - true if directory/files are deleted or renaming only by their owner.

getStickyBit

public boolean getStickyBit()
Specified by:
getStickyBit in interface DirectoryUbuntu
Returns:
boolean true if directory/file children are deleted or renamed only by the owner.