/**
* {@inheritdoc}
*/
public final function handle(FakeElement $data)
{
self::$fakeElement = $data->getName() . serialize($data->getOptions());
if (array_key_exists(self::$fakeElement, self::$outputContainer)) {
return $this->getOutput(self::$outputContainer[self::$fakeElement][0], self::$outputContainer[self::$fakeElement][1]);
}
$processed = $this->process($data);
if ($processed === null) {
if ($this->successor !== null) {
$processed = $this->successor->handle($data);
}
}
return $processed;
}