/**
  * Finds a value using string notation
  * @return array
  */
 public function find($path)
 {
     return parent::_find($path);
 }
 public function find($path)
 {
     return parent::_find($path, $_SESSION);
 }
 /**
  * Searches the list for matching items
  * @param mixed $expression1,...
  * @return ArrayList
  */
 public function find($expression1, $expression2 = null)
 {
     $ors = func_get_args();
     $objects = $this->items;
     foreach ($this->items as $index => $item) {
         $remove = true;
         $c = 0;
         foreach ($ors as $val) {
             foreach ($val as $path => $value) {
                 if ($value != parent::_find($path, $item)) {
                     break;
                 } elseif ($c == count($ors) - 1) {
                     $remove = false;
                     break 2;
                 }
                 $c++;
             }
         }
         if ($remove) {
             unset($objects[$index]);
         }
     }
     return (new ArrayList($this->type))->set($objects);
 }