package br.gov.mj.sislegis.app.parser.camara.xstream;
import java.util.ArrayList;
import java.util.List;
import br.gov.mj.sislegis.app.enumerated.Origem;
import br.gov.mj.sislegis.app.model.Proposicao;
import br.gov.mj.sislegis.app.parser.TipoProposicao;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamImplicit;
/**
* Mapper Xstream da entidade retornada pelo serviço:<br>
* http://www.camara.gov.br/SitCamaraWS/Proposicoes.asmx?op=ListarProposicoes
*
* @author coutinho
*
*/
@XStreamAlias("proposicoes")
public class Proposicoes {
@XStreamImplicit(itemFieldName = "proposicao")
List<ProposicaoWS> proposicoes = new ArrayList<ProposicaoWS>();
public List<ProposicaoWS> getProposicoes() {
return proposicoes;
}
public static void configXstream(XStream xstream) {
xstream.processAnnotations(Proposicoes.class);
xstream.processAnnotations(Autor.class);
xstream.processAnnotations(OrgaoNumerador.class);
xstream.processAnnotations(ProposicaoWS.class);
xstream.processAnnotations(TipoProposicao.class);
xstream.processAnnotations(Autor.class);
Situacao.configXstream(xstream);
}
}
@XStreamAlias("proposicao")
class ProposicaoWS {
TipoProposicao tipoProposicao;
String ano;
Integer id;
String numero;
String nome;
String txtEmenta;
Situacao situacao;
Autor autor1;
OrgaoNumerador orgaoNumerador;
public Proposicao toProposicao() {
Proposicao proposicao = new Proposicao();
proposicao.setAno(ano);
proposicao.setIdProposicao(id);
proposicao.setNumero(numero);
proposicao.setSigla(nome);
proposicao.setTipo(tipoProposicao.getSigla());
proposicao.setEmenta(txtEmenta);
proposicao.setOrigem(Origem.CAMARA);
proposicao.setAutor(autor1.txtNomeAutor);
if (situacao != null) {
proposicao.setComissao(situacao.orgao.siglaOrgaoEstado.trim());
} else {
if (orgaoNumerador != null) {
proposicao.setComissao(orgaoNumerador.sigla.trim());
}
}
proposicao.setSituacao(situacao.getDescricao());
proposicao.setLinkProposicao("http://www2.camara.leg.br/proposicoesWeb/fichadetramitacao?idProposicao="
+ proposicao.getIdProposicao());
return proposicao;
}
}