/**
  * Return a value from this collection
  *
  * @param  string $key
  * @return \s9e\TextFormatter\Configurator\Items\ProgrammableCallback
  */
 public function get($key)
 {
     $key = $this->normalizeKey($key);
     if (!$this->exists($key)) {
         if ($key[0] === '#') {
             $this->set($key, self::getDefaultFilter(substr($key, 1)));
         } else {
             $this->set($key, new AttributeFilter($key));
         }
     }
     // Get the filter from the collection
     $filter = parent::get($key);
     // Clone it to preserve the original instance
     $filter = clone $filter;
     return $filter;
 }
 /**
  * @testdox add() replaces the original element if the onDuplicate action is "replace"
  */
 public function testOnDuplicateReplace()
 {
     $collection = new NormalizedCollection();
     $collection->onDuplicate('replace');
     $collection->add('foo', 'bar');
     $collection->add('foo', 'baz');
     $this->assertSame('baz', $collection->get('foo'));
 }