/**
  * @param string $script
  */
 protected function addCacheFetch(&$script)
 {
     $backend = $this->parameters['backend'];
     $peerClassName = $this->builder->getStubPeerBuilder()->getClassname();
     $objectClassName = $this->builder->getStubObjectBuilder()->getClassname();
     $weAreInAnNameSpace = strlen($this->builder->getStubPeerBuilder()->getNamespace()) > 0;
     $script .= "\n/**\n * @param string \$key\n * @return null|array|{$objectClassName}|{$objectClassName}[]\n */\npublic static function cacheFetch(\$key)\n{\n    \$result = \\Domino\\CacheStore\\Factory::factory('{$backend}')->get(self::TABLE_NAME, \$key);\n\n    if (\$result !== null) {\n        if (\$result instanceof " . ($weAreInAnNameSpace ? '\\' : '') . "ArrayAccess) {\n            foreach (\$result as \$element) {\n                if (\$element instanceof {$objectClassName}) {\n                    {$peerClassName}::addInstanceToPool(\$element);\n                }\n            }\n        } else if (\$result instanceof {$objectClassName}) {\n            {$peerClassName}::addInstanceToPool(\$result);\n        }\n    }\n\n    return \$result;\n}\n        ";
 }
    /**
     * @param string $code
     * @param DataModelBuilder $builder
     * @return string
     */
    public function addCreateEntityToCode($code, DataModelBuilder $builder)
    {
        $className = $builder->getStubObjectBuilder()->getClassname();
        $code .= '
/**
 * @return ' . $className . '
 */
public function createEntity()
{
    return new ' . $className . '();
}
';
        return $code;
    }