protected function generateCondCodeBody($metadatas, ClassMetadataInfo $metadata) { $methods = []; foreach ($metadata->fieldMappings as $fieldMapping) { $columnName = $fieldMapping['columnName']; if (in_array($fieldMapping['type'], ['integer', 'datetime', 'boolean'])) { $methods[] = CodeGeneratorHelper::render($this->getMethodCodeByName(CondMethodBody::class, '____fieldNameScalar____'), array('fieldNameScalar' => $fieldMapping['fieldName'], 'ColumnName' => $columnName, 'OP' => '='), self::KEY_TEMPLATE); } if (in_array($fieldMapping['type'], ['string', 'guid', 'text'])) { $methods[] = CodeGeneratorHelper::render($this->getMethodCodeByName(CondMethodBody::class, '____fieldNameScalar____'), array('fieldNameScalar' => $fieldMapping['fieldName'], 'ColumnName' => $columnName, 'OP' => 'LIKE'), self::KEY_TEMPLATE); } } foreach ($metadata->embeddedClasses as $fieldName => $embeddedClass) { } foreach ($metadata->associationMappings as $associationMapping) { switch ($associationMapping['type']) { case ClassMetadataInfo::MANY_TO_ONE: $fieldName = $associationMapping['fieldName']; $targetEntity = CodeGeneratorHelper::fqn($associationMapping['targetEntity']); $columnName = $associationMapping['joinColumns'][0]['name']; $referenceColumnName = $associationMapping['joinColumns'][0]['referencedColumnName']; $targetQueryCollection = CodeGeneratorHelper::fqn($this->helper->getQueryCollectionClassNameByEntityClass($targetEntity)); $getterName = CodeGeneratorHelper::getGetterNameByFieldName($this->getFieldNameByColumnName($metadatas, $targetEntity, $referenceColumnName)); $targetMetadata = CodeGeneratorHelper::findMetadataByClassName($metadatas, $targetEntity); $methods[] = CodeGeneratorHelper::render($this->getMethodCodeByName(CondMethodBody::class, '____fieldNameManyToOne____'), array('fieldNameManyToOne' => $fieldName, 'ColumnName' => $columnName, 'FilterByEntityFullQualifiedClassName' => $targetEntity, 'QueryCollectionSimpleClassName' => $targetQueryCollection, 'OP' => '=', 'getterName' => $getterName, 'primaryKey' => CodeGeneratorHelper::getPrimaryKeyName($targetMetadata)), self::KEY_TEMPLATE); break; case ClassMetadataInfo::ONE_TO_MANY: break; case ClassMetadataInfo::MANY_TO_MANY: break; } } return implode("\n", $methods); }