original_string: protected function parseProperties() {
  		if ($this->isEntity()) {
  			//property mapping
  			$this->propertyMap = [];
  			//associations
  			$this->foreignkeys = $this->references = [];
  			//read-only properties
  			$this->readOnlyProperties = [];
  			//duplicate checks
  			$this->duplicateChecks = [];
  		}
  		
  		$properties = $this->reflectionClass->getProperties();
  		
  		foreach ($properties as $reflectionProperty) {
  			$propertyName = $reflectionProperty->getName();
  			$propertyAnnotations = Omocha::getAnnotations($reflectionProperty);
  			
  			if (($this->isEntity() || $this->isResultMap()) && $this->isDynamicAttribute($propertyAnnotations))
  				$this->parseDynamicAttribute($propertyName, $reflectionProperty, $propertyAnnotations);
  			elseif ($this->isEntity() && $this->isAssociation($propertyAnnotations))
  				$this->parseAssociation($propertyName, $reflectionProperty, $propertyAnnotations);
  			else {
  				$property = new ClassProperty($propertyName, $reflectionProperty, $propertyAnnotations);
  				
  				if ($this->isEntity()) {
  					if ($property->isPrimaryKey())
  						$this->primaryKey = $propertyName;
  					elseif ($property->checksForDuplicates())
  						$this->duplicateChecks[] = $propertyName;
  						
  					$this->propertyMap[$propertyName] = $property->getColumn();
  					
  					if ($property->isReadOnly())
  						$this->readOnlyProperties[] = $propertyName;
  				}
  				
  				$this->properties[$propertyName] = $property;
  			}
  		}
  	}
code: protected function parseProperties() {
  		if ($this->isEntity()) {
  			//property mapping
  			$this->propertyMap = [];
  			//associations
  			$this->foreignkeys = $this->references = [];
  			//read-only properties
  			$this->readOnlyProperties = [];
  			//duplicate checks
  			$this->duplicateChecks = [];
  		}
  		
  		$properties = $this->reflectionClass->getProperties();
  		
  		foreach ($properties as $reflectionProperty) {
  			$propertyName = $reflectionProperty->getName();
  			$propertyAnnotations = Omocha::getAnnotations($reflectionProperty);
  			
  			if (($this->isEntity() || $this->isResultMap()) && $this->isDynamicAttribute($propertyAnnotations))
  				$this->parseDynamicAttribute($propertyName, $reflectionProperty, $propertyAnnotations);
  			elseif ($this->isEntity() && $this->isAssociation($propertyAnnotations))
  				$this->parseAssociation($propertyName, $reflectionProperty, $propertyAnnotations);
  			else {
  				$property = new ClassProperty($propertyName, $reflectionProperty, $propertyAnnotations);
  				
  				if ($this->isEntity()) {
  					if ($property->isPrimaryKey())
  						$this->primaryKey = $propertyName;
  					elseif ($property->checksForDuplicates())
  						$this->duplicateChecks[] = $propertyName;
  						
  					$this->propertyMap[$propertyName] = $property->getColumn();
  					
  					if ($property->isReadOnly())
  						$this->readOnlyProperties[] = $propertyName;
  				}
  				
  				$this->properties[$propertyName] = $property;
  			}
  		}
  	}
code_tokens: protected function parseProperties ( ) { if ( $ this -> isEntity ( ) ) { //property mapping $ this -> propertyMap = [ ] ; //associations $ this -> foreignkeys = $ this -> references = [ ] ; //read-only properties $ this -> readOnlyProperties = [ ] ; //duplicate checks $ this -> duplicateChecks = [ ] ; } $ properties = $ this -> reflectionClass -> getProperties ( ) ; foreach ( $ properties as $ reflectionProperty ) { $ propertyName = $ reflectionProperty -> getName ( ) ; $ propertyAnnotations = Omocha :: getAnnotations ( $ reflectionProperty ) ; if ( ( $ this -> isEntity ( ) || $ this -> isResultMap ( ) ) && $ this -> isDynamicAttribute ( $ propertyAnnotations ) ) $ this -> parseDynamicAttribute ( $ propertyName , $ reflectionProperty , $ propertyAnnotations ) ; elseif ( $ this -> isEntity ( ) && $ this -> isAssociation ( $ propertyAnnotations ) ) $ this -> parseAssociation ( $ propertyName , $ reflectionProperty , $ propertyAnnotations ) ; else { $ property = new ClassProperty ( $ propertyName , $ reflectionProperty , $ propertyAnnotations ) ; if ( $ this -> isEntity ( ) ) { if ( $ property -> isPrimaryKey ( ) ) $ this -> primaryKey = $ propertyName ; elseif ( $ property -> checksForDuplicates ( ) ) $ this -> duplicateChecks [ ] = $ propertyName ; $ this -> propertyMap [ $ propertyName ] = $ property -> getColumn ( ) ; if ( $ property -> isReadOnly ( ) ) $ this -> readOnlyProperties [ ] = $ propertyName ; } $ this -> properties [ $ propertyName ] = $ property ; } } }
docstring: Parses the properties of the current class
docstring_tokens: Parses the properties of the current class