interface GroupGraphStorageInterface in Subgroup (Graph) 1.0.x
An interface for defining the storage of group relationships as a graph.
Hierarchy
- interface \Drupal\ggroup\Graph\GroupGraphStorageInterface
Expanded class hierarchy of GroupGraphStorageInterface
All classes that implement GroupGraphStorageInterface
1 file declares its use of GroupGraphStorageInterface
File
- src/
Graph/ GroupGraphStorageInterface.php, line 8
Namespace
Drupal\ggroup\GraphView source
interface GroupGraphStorageInterface {
/**
* Get all relations between groups ordered by the number of hops.
*
* @return array
* An array containing all relations between groups with the parent group as
* key and the child group as value.
*/
public function getGraph($group_id);
/**
* Relates the parent group and the child group.
*
* Inferred relationships based on existing relationships to the parent group
* and the child group will also be created.
*
* @param int $parent_group_id
* The ID of the parent group.
* @param int $child_group_id
* The ID of the child group.
*
* @return int|false
* The ID of the graph edge relating the parent group to the child group or
* FALSE if the relationship could not be created.
*/
public function addEdge($parent_group_id, $child_group_id);
/**
* Removes the relationship between the parent group and the child group.
*
* The child group will no longer be a child of the parent group. Inferred
* relationships based on existing relationships to the parent group will
* also be removed.
*
* @param int $parent_group_id
* The ID of the parent group.
* @param int $child_group_id
* The ID of the child group.
*/
public function removeEdge($parent_group_id, $child_group_id);
/**
* Gets all descendant child groups of the given parent group.
*
* @param int $group_id
* The parent group ID.
*
* @return int[]
* An array of descendant child group IDs.
*/
public function getDescendants($group_id);
/**
* Gets all ancestor parent groups of the given child group.
*
* @param int $group_id
* The child group ID.
*
* @return int[]
* An array of ancestor parent group IDs.
*/
public function getAncestors($group_id);
/**
* Checks if a group (A) is the ancestor of another group (B).
*
* @param int $a
* The group whose ancestry status will be checked.
* @param int $b
* The group for which ancestry status will be checked against.
*
* @return bool
* TRUE if group A is an ancestor of group B.
*/
public function isDirectAncestor($a, $b);
/**
* Checks if a group (A) is the direct descendant of another group (B).
*
* @param int $a
* The group whose descent status will be checked.
* @param int $b
* The group for which descent status will be checked against.
*
* @return bool
* TRUE if group A is a descendant of group B.
*/
public function isDirectDescendant($a, $b);
/**
* Checks if a group (A) is the direct ancestor of another group (B).
*
* @param int $a
* The group whose ancestry status will be checked.
* @param int $b
* The group for which ancestry status will be checked against.
*
* @return bool
* TRUE if group A is an ancestor of group B.
*/
public function isAncestor($a, $b);
/**
* Checks if a group (A) is the descendant of another group (B).
*
* @param int $a
* The group whose descent status will be checked.
* @param int $b
* The group for which descent status will be checked against.
*
* @return bool
* TRUE if group A is a descendant of group B.
*/
public function isDescendant($a, $b);
/**
* Use the Breadth-first search algoritm to find the path between groups.
*
* @param int $parent_group_id
* The ID of the parent group.
* @param int $child_group_id
* The ID of the child group.
*
* @return array[]
* An nested array containing a path between the groups.
*
* @see https://en.wikipedia.org/wiki/Breadth-first_search
* @see https://www.sitepoint.com/data-structures-4/
*/
public function getPath($parent_group_id, $child_group_id);
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
GroupGraphStorageInterface:: |
public | function | Relates the parent group and the child group. | 1 |
GroupGraphStorageInterface:: |
public | function | Gets all ancestor parent groups of the given child group. | 1 |
GroupGraphStorageInterface:: |
public | function | Gets all descendant child groups of the given parent group. | 1 |
GroupGraphStorageInterface:: |
public | function | Get all relations between groups ordered by the number of hops. | 1 |
GroupGraphStorageInterface:: |
public | function | Use the Breadth-first search algoritm to find the path between groups. | 1 |
GroupGraphStorageInterface:: |
public | function | Checks if a group (A) is the direct ancestor of another group (B). | 1 |
GroupGraphStorageInterface:: |
public | function | Checks if a group (A) is the descendant of another group (B). | 1 |
GroupGraphStorageInterface:: |
public | function | Checks if a group (A) is the ancestor of another group (B). | 1 |
GroupGraphStorageInterface:: |
public | function | Checks if a group (A) is the direct descendant of another group (B). | 1 |
GroupGraphStorageInterface:: |
public | function | Removes the relationship between the parent group and the child group. | 1 |