Manipular dados de um DTO

Tudo bom, pessoal?
Tenho uma dúvida: possuo um método que recebe um DTO, com vários valores. Neste DTO, devo verificar se determinado campo possui um valor x. Em caso afirmativo, executo uma ação.
O meu problema está sendo exatamente em pegar esse campo, pois devo varrer todos os campos do dto, e só após verificar o dado encaminha-lo para a ação correspondente.
Alguém poderia me dar uma luz???

Primeira Questão: Você realmente precisa de um DTO? Na maioria dos casos isso não é verdade, não custa nada dar uma revista no design.

Bom, idealmente os DTOs deveriam apenas trazer e levar dados, sendo imutáveis. Normalmente você vai usar um mapper para transformar os dados do DTO em objetos de domínio (talvez com algo que converta entre domínios diferentes, um context mapper), alterar os objetos de domínio, transofrma-los em novos DTOs e enviar pela rede, porém nem sempre isso é viável.

Quando não é viável deve-se utilizar o DTO como um objeto normal, com seus gets e sets.

Pelo problema que você relatou acredito que possa estar usando DTO em ujm contexto não apropriado… como é o seu design?

Na verdade, eu não irei alterar nada dos dtos. Preciso apenas verificar os valores que vierem e, no caso de aparecer um item específico, chamar um método à parte.

É verdade, interpretei errado o ‘manipualr’. De qualquer forma:

  1. por que precisa de um DTO?
  2. pro que precisa varrer ele todo para epgar um dado?

Um DTO é uma estrutura de dados otimizada para uma ou mais funções, se você tem que varrer a estrutura toda para pegar um dado provavelmente seu DTO (se é que você precisa de um) deve ser remodelado.

O problema é o seguinte: tenho um relatório que é impresso normalmente, usando o DTO como fonte de dados, e tenho um campo que indica qual o estado. Ao se mudar de estado, devo imprimir uma folha de rosto indicado o novo estado, e é aí que mora o problema.
Quanto ao DTO, foi especificado pela Chefia que deveria utilizá-lo. Como manda quem pode, e obedece quem tem juízo :lol:

Ok, eu não entendi muito mas aprece que voce tem um monte de objetos que vai imprimindo sequencialmente e quando um deles possui um dado diferente antes de imprimir o objeto voce imprime uma folha de rosto. É isso?

Se for, não entendi o dilema. Se voccê está percorrendo os objetos para imprimir qual o problema em verificar o estado? O atributo estado não pertence a este objeto? :roll:

Tenho um DTO, que seria mais ou menos isso:
Endereço, bairro, cidade,estado, cep
E tenho uma função que deveria fazer o seguinte: pega o 1º estado, joga numa variável e joga os dados num relatório. Se houver mais de um, ele gera uma carta por vez, sempre setando a variável com o nome do estado.
Só que tenho que verificar se essa variável sofreu alteração de um conjunto de dados para outro, Se houver, tenho que imprimir essa folha de rosto antes de enviar os dados para impressão, e não estou conseguindo exatamente por possuir apenas esse DTO já instanciado.

Você tem um objeto ou uma lsita deles? O objeto contêm todos os dadso a serem impressos? Como você está iterando pelos dados?

Não sei se é o melhor, mas tenho uma lista.

E você não quer verificar o estado a cada item?

Na verdade, eu tenho que verificar o estado desse campo a cada item. O problema está sendo em pegar apenas o campo…

Ainda não entendi, qual o problema em dar um

if(ultimoEstado.equals(obj.getEstado())){
 ultimo Estado=obj.getEstado();
 imprimeFolhaNova(obj.getEstado());
}