Interface IGroupOfGroups
Represents a group of groups. IGroup implements IGroupOfGroups since it is both a group of groups and also, a group of queries.
public interface IGroupOfGroups : IControllerChild
- Inherited Members
- Extension Methods
Properties (8)
AllGroupsRecursive
Gets all groups under this IGroupOfGroups, and also under child groups, recursively.
IReadOnlyList<IGroup> AllGroupsRecursive { get; }
Property Value
Remarks
The list returned is a clone. Hence it doesn't reflect any modification in the original collection.
AllGroupsRecursiveCount
Gets the count of all groups under this IGroupOfGroups, and also under child groups, recursively.
int AllGroupsRecursiveCount { get; }
Property Value
AllQueriesRecursive
Gets all queries under this IGroupOfGroups, and also under child groups, recursively.
IReadOnlyList<IQuery> AllQueriesRecursive { get; }
Property Value
Remarks
The list returned is a clone. Hence it doesn't reflect any modification in the original collection.
AllQueriesRecursiveCount
Gets the count of all queries under this IGroupOfGroups, and also under child groups, recursively.
int AllQueriesRecursiveCount { get; }
Property Value
ChildGroups
Gets a read-only list of child groups.
IReadOnlyList<IGroup> ChildGroups { get; }
Property Value
Remarks
The list returned is a clone. Hence it doesn't reflect any modification in the original collection.
ChildGroupsCount
Gets the child groups count.
int ChildGroupsCount { get; }
Property Value
IsRootParent
Gets a value indicating whether this group of groups is a root parent.
bool IsRootParent { get; }
Property Value
RootParent
Gets the root parent. Returns this if this.IsRootParent. Returns null if the group of groups has no root parent.
IGroupOfGroups RootParent { get; }
Property Value
Methods (9)
AddGroup(IGroup)
Add groupToAdd to this group of groups children.
IGroupOfGroups AddGroup(IGroup groupToAdd)
Parameters
groupToAddIGroupThe group to add.
Returns
- IGroupOfGroups
The new group of groups object representing this group of groups.
Remarks
Since code query objects are immutable, the old group of groups object have been replaced in the parent hierarchy by the new returned group of groups object.
Exceptions
- ArgumentException
groupToAddmust be different than this group of groups, or doesn't have the same controller.
AddRange(IEnumerable<IGroup>)
Add a sequence of groups to this group of groups children.
IGroupOfGroups AddRange(IEnumerable<IGroup> groups)
Parameters
groupsIEnumerable<IGroup>The sequence of groups to add.
Returns
- IGroupOfGroups
The new group of groups object representing this group of groups.
Remarks
Since code query objects are immutable, the old group of groups object have been replaced in the parent hierarchy by the new returned group of groups object.
Exceptions
- ArgumentException
A group in
groupsdoesn't have the same controller as this.
CloneDeep(IController)
Clone this group of groups and all its child groups and child queries recursively, through controller.
IGroupOfGroups CloneDeep(IController controller)
Parameters
controllerIControllerThe queries controller used for cloning.
Returns
- IGroupOfGroups
This group of groups cloned.
ContainsGroup(IGroup)
Gets a value indicating whether this group of groups contains group.
bool ContainsGroup(IGroup group)
Parameters
groupIGroupThe group to locate in this IGroupOfGroups.
Returns
GetGroupAt(int)
Returns the group at the index position in this.ChildGroups.
IGroup GetGroupAt(int index)
Parameters
indexintThe index position.
Returns
Exceptions
- ArgumentOutOfRangeException
indexmust be a positive or zero integer, strictly lower than this.ChildGroupsCount.
IndexOfGroup(IGroup)
Determines the index of a specific group in this.ChildGroups.
int IndexOfGroup(IGroup group)
Parameters
groupIGroupThe group to locate in this.ChildGroups.
Returns
Remarks
If this group of groups doesn't contain group, the value -1 is returned.
MoveGroupToIndex(int, IGroup)
Move groupToMove to the position specified by index.
IGroupOfGroups MoveGroupToIndex(int index, IGroup groupToMove)
Parameters
indexintThe new
groupToMoveposition under this group of groups child groups.groupToMoveIGroupThe group to move.
Returns
- IGroupOfGroups
The new group of groups object representing this group of groups.
Remarks
Since code query objects are immutable, the old group of groups object have been replaced in the parent hierarchy by the new returned group of groups object.
Exceptions
- ArgumentOutOfRangeException
indexmust be a positive or zero integer, andindexmust be strictly lower than this.ChildGroupsCount.- ArgumentException
groupToMovemust be different than this group of groups.
AlsogroupToMovemust be a child group of this group of groups.
RemoveGroup(IGroup)
Remove groupToRemove from this group of groups children.
IGroupOfGroups RemoveGroup(IGroup groupToRemove)
Parameters
groupToRemoveIGroupThe group to remove.
Returns
- IGroupOfGroups
The new group of groups object representing this group of groups.
Remarks
Since code query objects are immutable, the old group of groups object have been replaced in the parent hierarchy by the new returned group of groups object.
Exceptions
- ArgumentException
groupToRemovemust be different than this group of groups.
Also, this group of groups must containgroupToRemove.
ReplaceGroup(IGroup, IGroup)
Replace groupToReplace with newGroup.
IGroupOfGroups ReplaceGroup(IGroup groupToReplace, IGroup newGroup)
Parameters
Returns
- IGroupOfGroups
The new group of groups object representing this group of groups.
Remarks
Since code query objects are immutable, the old group of groups object have been replaced in the parent hierarchy by the new returned group of groups object.
Exceptions
- ArgumentException
groupToReplaceandnewGroupmust both be different than this group of groups.
AlsogroupToReplacemust be a child group of this group of groups andnewGroupmust not be a child group of this group of groups.
AlsonewGroupmust have the same controller as this.