protected function writeObjectInterfaces($object, $interfaces)
    {
        foreach ($interfaces as $interfaceName) {
            try {
                $interface   = $this->reflector->getClass($interfaceName);
                $longName    = $interface->getName();

                $this->writeObjectElement($interface);

            } catch (\Exception $e) {
                // interface is undeclared in data source
                $parts       = explode('\\', $interfaceName);
                $shortName   = array_pop($parts);
                $longName    = $interfaceName;
                $ns          = implode($this->namespaceSeparator, $parts);

                if (!isset($this->objects[$ns])) {
                    $this->objects[$ns] = array();
                }

                if (!array_key_exists($shortName, $this->objects[$ns])) {
                    $this->pushObject($ns, $shortName, $longName, 'interface');
                }
            }

            $this->pushEdge(
                array($object->getName(), $longName),
                array('arrowhead' => 'empty', 'style' => 'dashed')
            );
        }
    }