Migrando enums do commons-lang para Java 5

Atenção, este blog foi migrado para: http://brunopereira.org

Um tempo atrás eu e o Rafael tivemos que migrar alguns enums implementados com o commons-lang em JDK 1.3 e JDK 1.4 para os novos enums do Java 5. Como muita gente já precisou ou precisará fazer isso algum dia, julguei interessante compartilhar um exemplo simples de mudança.Não há absolutamente nada de sofisticado nisso, mas para quem estiver sem criatividade ou sem paciência, lá vão os exemplos:

Com commons-lang:

public class TipoPublicacao extends ValuedEnum {

public static final TipoPublicacao PLANO = new TipoPublicacao(“Plano”,1);
public static final TipoPublicacao PACOTE_PLANOS = new TipoPublicacao(“Pacote com Plano”,2);
public static final TipoPublicacao PACOTE_ADICIONAIS = new TipoPublicacao(“Pacote so Adicionais”,3);

public TipoPublicacao(String desc, int tipo) {
super(desc, tipo);
}

public static TipoPublicacao getTipoPublicacao(BigDecimal tipo) {
if (tipo == null) {
return null;
} else {
return (TipoPublicacao) TipoPublicacao.getEnum(TipoPublicacao.class, tipo.intValue());
}
}

public BigDecimal getTipoPublicacaoBigDecimal() {
return new BigDecimal(this.getValue());
}

}

Com Java 5:

public enum TipoPublicacao {

PLANO (“Plano”, 1),
PACOTE_PLANOS (“Pacote com Plano”, 2),
PACOTE_ADICIONAIS (“Pacote so Adicionais”, 3);

private final String descricao;

private final int tipo;

TipoPublicacao(String desc, int tipo) {
this.descricao = desc;
this.tipo = tipo;
}

public String getDescricao() {
return descricao;
}

public int getTipo() {
return tipo;
}
public static int getTipoPublicacao(String nameEnum) {
return TipoPublicacao.valueOf(nameEnum).getTipo();
}
}

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: