protected function encode($fieldsDef, $modelSection)
 {
     $encoded = '';
     foreach ($fieldsDef as $field => $definition) {
         if (isset($modelSection->{$field})) {
             $format = $definition['picture'];
             $encoded .= Picture::encode($modelSection->{$field}, $format, array('field_desc' => $field));
         }
     }
     return $encoded;
 }
 public function obterValorCampo(array $definicao)
 {
     if (1 !== preg_match(Picture::REGEX_VALID_FORMAT, $definicao['picture'], $tipo)) {
         throw new LinhaException('Erro ao obter valor de campo. Definição de campo inválida (picture).');
     }
     $inicio = $definicao['pos'][0] - 1;
     $tamanho1 = !empty($tipo['tamanho1']) ? (int) $tipo['tamanho1'] : 0;
     $tamanho2 = !empty($tipo['tamanho2']) ? (int) $tipo['tamanho2'] : 0;
     $tamanho = $tamanho1 + $tamanho2;
     $formato = $definicao['picture'];
     $opcoes = array();
     return Picture::decode(substr($this->linhaStr, $inicio, $tamanho), $formato, $opcoes);
 }