validSources = $validSources; $this->retriever = $retriever; $this->reader = new NodeReader([]); } /** * Get the value for a key, trying the sources in the order given by priorities. */ public function get($key, $priorities, $default = null) { foreach ($priorities as $p) { if (isset($this->validSources[$p])) { $object = $this->retriever->getObject($this->validSources[$p]); if (!isset($object)) continue; } else if (substr($p, -10) == '.namespace' && isset($this->validSources[substr($p, 0, -10)])) { $object = $this->retriever->getObject( COIDParser::getNamespaceCOID($this->validSources[substr($p, 0, -10)])); if (!isset($object)) continue; } if (!isset($object)) continue; $value = $this->reader->getFirstValueString($object, $key); if (isset($value)) return $value; } return $default; // not found } }