original_string: final protected function raw_get($property) {
          if (!static::has_property($property)) {
              throw new coding_exception('Unexpected property \'' . s($property) .'\' requested.');
          }
          if (!array_key_exists($property, $this->data) && !static::is_property_required($property)) {
              $this->raw_set($property, static::get_property_default_value($property));
          }
          return isset($this->data[$property]) ? $this->data[$property] : null;
      }
code: final protected function raw_get($property) {
          if (!static::has_property($property)) {
              throw new coding_exception('Unexpected property \'' . s($property) .'\' requested.');
          }
          if (!array_key_exists($property, $this->data) && !static::is_property_required($property)) {
              $this->raw_set($property, static::get_property_default_value($property));
          }
          return isset($this->data[$property]) ? $this->data[$property] : null;
      }
code_tokens: final protected function raw_get ( $ property ) { if ( ! static :: has_property ( $ property ) ) { throw new coding_exception ( 'Unexpected property \'' . s ( $ property ) . '\' requested.' ) ; } if ( ! array_key_exists ( $ property , $ this -> data ) && ! static :: is_property_required ( $ property ) ) { $ this -> raw_set ( $ property , static :: get_property_default_value ( $ property ) ) ; } return isset ( $ this -> data [ $ property ] ) ? $ this -> data [ $ property ] : null ; }
docstring: Internal Data getter.
  
  This is the main getter for all the properties. Developers can implement their own getters
  but they should be calling {@link self::get()} in order to retrieve the value. Essentially
  the getters defined by the developers would only ever be used as helper methods and will not
  be called internally at this stage. In other words, do not expect {@link self::to_record()} or
  {@link self::from_record()} to use them.
  
  This is protected because it is only for raw low level access to the data fields.
  Note this function is named raw_get and not get_raw to avoid naming clashes with a property named raw.
  
  @param  string $property The property name.
  @return mixed
docstring_tokens: Internal Data getter .