private function getExtendableFile($specification) {
        $target = $specification->getTarget();
        if (!array_key_exists($target, $this->extendableFiles)) {
            if (!$specification->mayCreate())
                return null;
            $this->extendableFiles[$target] = $this->getExtendableFileFromSpecification($specification);
            $this->logFile->log(null, "added file \"{$specification->getTarget()}\"");
        }
        return $this->extendableFiles[$target];
    }