ARoad0.gBaseInterface
Interface ImmutableVirtualFolder

All Superinterfaces:
ACSObject, BaseBeanManager, BaseObject, BoundBean, java.lang.Comparable, FinalizedObject, FinalizedObjectForUser, ImmutableFolder, ImmutableLeaf, ImmutableNode, ImmutablePrivilegeTarget, ImmutableSource, ImmutableTarget, PrivilegeUser
All Known Subinterfaces:
VirtualFolder, VirtualFolderMySQL
All Known Implementing Classes:
VirtualFolderImpl, VirtualFolderMySQLImpl

public interface ImmutableVirtualFolder
extends ImmutableFolder, ImmutableNode, ImmutablePrivilegeTarget, ImmutableSource

This interface models a container of Resources belonging to one ACS, responsible for being a PrivilegeTarget, an alias or an alias reference. A VirtualFolder is also an ImmutableSource. It manages HAS_VIRTUAL_MEMBER relations to its members. The relation VirtualFolder/member is weak. The deleting of the container does not delete the members, on the contrary of Directory. There are two main types of virtual folders, where the members are always Resources:

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

- for Resource members which may be EligibleParties ('EP_VFOLDER' type)

Thus, an Virtual Folder is an access target, and it is an access source only as reference of an alias or as container of its members.

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

Trees of virtual folders are possible. There is no rights inheritance in the tree for the generic gBase classes, but an AcsAddon may override the hook methods.

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,

- its privileges, as any privilege target.

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)

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 its 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 a virtual folder implies the deleting of its children. The typed privileges are applies to the virtual folder types. Then, they may be used to defined default virtual folder rights. A VirtualFolder is an ImmutableSource since it manages HAS_VIRTUAL_MEMBER relations to its members. Caution: no equals() nor clone() methods. See the Copyright.


Method Summary
 boolean equals(java.lang.Object _obj)
          Tests of equals() on name, children and parent.
 ImmutableVirtualFolder[] getEorL_Children()
          An array of external object references on the children of this node, which are virtual folders.
 java.lang.String getMainVFType()
          The virtual folder main types are defined by the program.
 boolean getMemberOneTimeInTree()
          True if the ACS does not allow an ACSObject to be more than one time in the folders tree of relevant type (EP tree or Resource tree).
 java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String _propertyName)
          Returns the change listeners for a property.
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutableFolder
containsBaseObject, getComment, getConnectedToSeveralACS, getEorL_ConnectedACSNames, getEorM_BaseObjects, getType, isEmpty
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutablePrivilegeTarget
getEorImmutableL_TargetInheritedLinkedPrivileges, getEorL_TargetPrivilegeForLinks, getEorL_TargetPrivilegeForTypes, getEorL_TargetPrivileges, getM_TargetInheritedLinkedPRIRights, getType, selectInheritedPrivilege
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutableTarget
getEorAliasAsInternalHardReference, getEorReferenceAsInternalHardAlias, getHasSoftAlias, getL_AcsOfSoftReferences, getL_SoftAlias
 
Methods inherited from interface ARoad0.gBaseInterface.BaseBeanManager
addPropertyChangeListener, addPropertyChangeListener, removePropertyChangeListener, removePropertyChangeListener
 
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.BoundBean
addPropertyChangeListener, addPropertyChangeListener, removePropertyChangeListener, removePropertyChangeListener
 
Methods inherited from interface ARoad0.gBaseInterface.FinalizedObjectForUser
finalizeForUser
 
Methods inherited from interface ARoad0.gBaseInterface.FinalizedObject
finalizeForBase
 
Methods inherited from interface ARoad0.gBaseInterface.ImmutableSource
getEorAliasAsInternalHardReference, getEorReferenceAsInternalHardAlias, getHasSoftAlias, getL_AcsOfSoftReferences, getL_SoftAlias, getType
 

Method Detail

getMemberOneTimeInTree

boolean getMemberOneTimeInTree()
True if the ACS does not allow an ACSObject to be more than one time in the folders tree of relevant type (EP tree or Resource tree).


getMainVFType

java.lang.String getMainVFType()
The virtual folder main types are defined by the program.

Returns:
String of VF type, as "RES_VFOLDER" and "EP_VFOLDER". Not null.

getEorL_Children

ImmutableVirtualFolder[] getEorL_Children()
An array of external object references on the children of this node, which are virtual folders.

Returns:
ImmutableVirtualFolder[]. May be null but not empty.

equals

boolean equals(java.lang.Object _obj)
Tests of equals() on name, children and parent.

Specified by:
equals in interface BaseObject
Overrides:
equals in class java.lang.Object
Parameters:
_obj - to compare to this instance
Returns:
true if _obj is a VirtualFolderImpl instance (or an instance of an extended class) equals to the current one

getPropertyChangeListeners

java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String _propertyName)
Returns the change listeners for a property. Used by the AcsAddons.

Parameters:
_propertyName - name of the listened property.
Returns:
the change listeners. May be null or empty.