private function generateDocumentStubMethods(ClassMetadataInfo $metadata)
{
$methods = array();
foreach ($metadata->fieldMappings as $fieldMapping) {
if (isset($fieldMapping['id'])) {
if ($metadata->generatorType == ClassMetadataInfo::GENERATOR_TYPE_NONE) {
if ($code = $this->generateDocumentStubMethod($metadata, 'set', $fieldMapping['fieldName'], $fieldMapping['type'])) {
$methods[] = $code;
}
}
if ($code = $code = $this->generateDocumentStubMethod($metadata, 'get', $fieldMapping['fieldName'], $fieldMapping['type'])) {
$methods[] = $code;
}
} elseif (!isset($fieldMapping['association'])) {
if ($code = $code = $this->generateDocumentStubMethod($metadata, 'set', $fieldMapping['fieldName'], $fieldMapping['type'])) {
$methods[] = $code;
}
if ($code = $code = $this->generateDocumentStubMethod($metadata, 'get', $fieldMapping['fieldName'], $fieldMapping['type'])) {
$methods[] = $code;
}
} elseif ($fieldMapping['type'] === ClassMetadataInfo::ONE) {
$nullable = $this->isAssociationNullable($fieldMapping) ? 'null' : null;
if ($code = $this->generateDocumentStubMethod($metadata, 'set', $fieldMapping['fieldName'], isset($fieldMapping['targetDocument']) ? $fieldMapping['targetDocument'] : null, $nullable)) {
$methods[] = $code;
}
if ($code = $this->generateDocumentStubMethod($metadata, 'get', $fieldMapping['fieldName'], isset($fieldMapping['targetDocument']) ? $fieldMapping['targetDocument'] : null)) {
$methods[] = $code;
}
} elseif ($fieldMapping['type'] === ClassMetadataInfo::MANY) {
if ($code = $this->generateDocumentStubMethod($metadata, 'add', $fieldMapping['fieldName'], isset($fieldMapping['targetDocument']) ? $fieldMapping['targetDocument'] : null)) {
$methods[] = $code;
}
if ($code = $this->generateDocumentStubMethod($metadata, 'remove', $fieldMapping['fieldName'], isset($fieldMapping['targetDocument']) ? $fieldMapping['targetDocument'] : null)) {
$methods[] = $code;
}
if ($code = $this->generateDocumentStubMethod($metadata, 'get', $fieldMapping['fieldName'], '\\Doctrine\\Common\\Collections\\Collection')) {
$methods[] = $code;
}
}
}
return implode("\n\n", $methods);
}