LeanMapper\Reflection\EntityReflection::parseProperties PHP Method

parseProperties() private method

private parseProperties ( )
    private function parseProperties()
    {
        $this->properties = [];
        $annotationTypes = ['property', 'property-read'];
        $columns = [];
        foreach ($this->getFamilyLine() as $member) {
            foreach ($annotationTypes as $annotationType) {
                foreach (AnnotationsParser::parseAnnotationValues($annotationType, $member->getDocComment()) as $definition) {
                    $property = PropertyFactory::createFromAnnotation($annotationType, $definition, $member, $this->mapper);
                    // collision check
                    $column = $property->getColumn();
                    if ($column !== null and $property->isWritable()) {
                        if (isset($columns[$column])) {
                            throw new InvalidStateException("Mapping collision in property '{$property->getName()}' (column '{$column}') in entity {$this->getName()}. Please fix mapping or make chosen properties read only (using property-read).");
                        }
                        $columns[$column] = true;
                    }
                    $this->properties[$property->getName()] = $property;
                }
            }
        }
    }