ARoad0.gBaseInterface
Interface VirtualFolder

All Superinterfaces:
ACSObject, BaseBeanManager, BaseObject, BoundBean, java.lang.Comparable, java.util.EventListener, FinalizedObject, FinalizedObjectForUser, Folder, ImmutableFolder, ImmutableLeaf, ImmutableNode, ImmutablePrivilegeTarget, ImmutableSource, ImmutableTarget, ImmutableVirtualFolder, Leaf, Node, PrivilegeTarget, PrivilegeUser, java.beans.PropertyChangeListener
All Known Subinterfaces:
VirtualFolderMySQL
All Known Implementing Classes:
VirtualFolderImpl, VirtualFolderMySQLImpl

public interface VirtualFolder
extends ImmutableVirtualFolder, Folder, Node, PrivilegeTarget

This interface is a Resources folder belonging to one ACS, responsible for being a privilege target, an alias or an alias reference.

The default behavior in the rights propagaton is the RIGHTS_PASSING_OFF_TO_MEMBERS mode. This means that the VirtualFolder transfers none of its rights as target to its member. In the other mode RIGHTS_PASSING_ON_TO_MEMBERS, the ACS as set this mode for its virtual folders, and all the virtual folder rights are transfered to the members.

There are two main types of virtual folders:

- for Resource members which are not EligibleParties ('RES_VFOLDER' type)

- for Resource members which are EligibleParties ('EP_VFOLDER' type)

Trees of virtual folders are possible. They have no rights inheritance in the generic gBase, while an AcsAddon may override the hook methods.

A virtual folder may be included in:

- a virtual tree of Resource Folders, which is not the Resources tree in the ACS,

- or a virtual tree of Eligible Party Folders.

The virtual folder manages:

- its members, as any folder, and they are Basics of one ACS; they are not deleted when this folder is deleted,

- its children, as any node, and they are virtual folders (no Basic) which are deleted when this node is deleted,

- privileges, as any target.

Each type allows only one folders tree and then, one folder root in an ACS. It is possible to force each member to be member at most one time in all the folder tree (EP or Resource tree).

There is no link between the members of a virtual folder and the members of the folder children. There is no link between the privileges of a virtual folder and the privileges of its children. But, as any node, the deleting of the virtual folder implies the deleting of its children.

The typed privileges are applied to the virtual folder types. Then, they may be used to defined default virtual folder rights.

There are two flows of data to manage the inherited Privileges:

- one at the privilege creation/deletion, and this is not done in the generic gBase package,

- one at their sources editing,

This interface handles the second case, to update the children of the VirtualFolder which is the target of the Privilege. Caution: no equals() nor clone() methods. See the Copyright.


Method Summary
 void resetInheritedPrivilegeRights(PrivilegeForLinks _lpri)
          Resets the inherited Privilege rights after an user edition.
 void resetInheritedPrivilegeRightsOfChildren(PrivilegeForLinks _lpri)
          Resets the inherited Privilege rights in the children, if the Privilege inheritance is applicable.
 PrivilegeForLinks selectInheritedPrivilege(PrivilegeForLinks _lpri, java.lang.String _type)
          Returns the Privilege to use as inherited Privilege in a child.
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutableVirtualFolder
equals, getEorL_Children, getMainVFType, getMemberOneTimeInTree, getPropertyChangeListeners
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutableSource
getEorAliasAsInternalHardReference, getEorReferenceAsInternalHardAlias, getHasSoftAlias, getL_AcsOfSoftReferences, getL_SoftAlias, getType
 
Methods inherited from interface ARoad0.gBaseInterface.Folder
addEorBaseObject, addPropertyChangeListener, addPropertyChangeListener, propertyChange, removeEorBaseObject, removePropertyChangeListener, removePropertyChangeListener, setComment
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutableFolder
containsBaseObject, getComment, getConnectedToSeveralACS, getEorL_ConnectedACSNames, getEorM_BaseObjects, getType, isEmpty
 
Methods inherited from interface ARoad0.gBaseInterface.PrivilegeTarget
addEorPrivilegeForTypeToTarget, removeEorPrivilegeToTarget
 
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
 
Methods inherited from interface ARoad0.gBaseInterface.FinalizedObjectForUser
finalizeForUser
 
Methods inherited from interface ARoad0.gBaseInterface.FinalizedObject
finalizeForBase
 

Method Detail

resetInheritedPrivilegeRights

void resetInheritedPrivilegeRights(PrivilegeForLinks _lpri)
Resets the inherited Privilege rights after an user edition. Called by the master parent when there is a change in the effective rights of an inherited Privilege. This is only when there is a change in the sources. Contrary to AclEntry, the rights are immutable and there is no conditional group. Not described in the BeanInfo since the user does not call it. Note: the creation of the inherited Privilege in a child is not handled by the generic gBase package, while the rights updating of the inherited Privilege is handled.

Parameters:
_lpri - inherited Privilege with updated rights. Never null.

selectInheritedPrivilege

PrivilegeForLinks selectInheritedPrivilege(PrivilegeForLinks _lpri,
                                           java.lang.String _type)
Returns the Privilege to use as inherited Privilege in a child. Empty method which returns the argument. Has to be implmented into an AcsAddon handling the privilege inheritance.

Specified by:
selectInheritedPrivilege in interface ImmutablePrivilegeTarget
Parameters:
_lpri - the initial Privilege which may be given to the child
_type - type of a child, as VirtualFolder
Returns:
the inherited Privilege if the child inherits this initial Privilege, or null

resetInheritedPrivilegeRightsOfChildren

void resetInheritedPrivilegeRightsOfChildren(PrivilegeForLinks _lpri)
Resets the inherited Privilege rights in the children, if the Privilege inheritance is applicable. There are two flows of data to manage the inherited Privileges:

- one at the privilege creation/deletion, and this is not done in the generic gBase package,

- one at their sources editing,

This method is called for handling the second case, to update the children of the VirtualFolder which is the target of the Privilege. Not described in the BeanInfo since the user does not call it.

Parameters:
_lpri - inherited Privilege with updated sources