SproutCMS

This is the code documentation for the SproutCMS project

source of /sprout/Helpers/TreenodeValueMatcher.php

  1. <?php
  2. /*
  3.  * Copyright (C) 2017 Karmabunny Pty Ltd.
  4.  *
  5.  * This file is a part of SproutCMS.
  6.  *
  7.  * SproutCMS is free software: you can redistribute it and/or modify it under the terms
  8.  * of the GNU General Public License as published by the Free Software Foundation, either
  9.  * version 2 of the License, or (at your option) any later version.
  10.  *
  11.  * For more information, visit <http://getsproutcms.com>.
  12.  */
  13.  
  14. namespace Sprout\Helpers;
  15.  
  16. /**
  17. * @package Tree
  18. **/
  19.  
  20. /**
  21. * Matches a node which has a specific key matching a specific value
  22. **/
  23. class TreenodeValueMatcher implements TreenodeMatcher
  24. {
  25. private $key;
  26. private $value;
  27.  
  28.  
  29. /**
  30.   * Constructor
  31.   *
  32.   * @param string $key The key to search
  33.   * @param mixed $value The value to search for
  34.   **/
  35. public function __construct($key, $value)
  36. {
  37. $this->key = $key;
  38. $this->value = $value;
  39. }
  40.  
  41.  
  42. /**
  43.   * Does the match
  44.   *
  45.   * @param TreeNode $node The treenode to do matching against
  46.   * @return True if the node matches, false otherwise
  47.   **/
  48. public function match($node)
  49. {
  50. if ($node[$this->key] == $this->value) return true;
  51. return false;
  52. }
  53.  
  54. /**
  55.   * Returns true if the children of the specified node should be searched, false otherwise.
  56.   *
  57.   * @param TreeNode $node The treenode which is about to be descended into
  58.   * @return True descending should proceed, false otherwise
  59.   **/
  60. public function descend($node)
  61. {
  62. return true;
  63. }
  64.  
  65. /**
  66.   * Called after children have been processed
  67.   *
  68.   * @param TreeNode $node The treenode which has just ascended.
  69.   **/
  70. public function ascend ($node) {}
  71. }
  72.  
  73.  
  74.