private function prepareGettersAndSetters()
    {
        $table_descriptor = $this->getStorageDescriptor();

        foreach ($table_descriptor->getFieldNames() as $name) {
            $field = $table_descriptor->getField($name);
            if (array_key_exists('name', $field) &&
                array_key_exists('data_type', $field) &&
                array_key_exists('type', $field)
            ) {
                $field_name = $field['name'];
                if (nb_strStartsWith($field_name, $this->table_name)) {
                    $field_name = preg_replace('/^' . $this->table_name . '_*/', '', $field_name);
                }
                $name = nb_underscore2StudlyCaps($field_name, true, $this->dictionary);
                $entity = nb_underscore2EntityName($field['name'], true, $this->dictionary);
                $this->buildGetter($field, $name, $entity);
                $this->buildSetter($field, $field_name, $name, $entity);
            }
        }
    }