Java tutorial
/* * baseutil, api de utilitrios Java. * Copyright (c) 2015 Senio Caires * e-mail: seniocaires@gmail.com * * Este arquivo parte da api baseutil * * baseutil um software livre; voc pode redistribu-lo e/ou * modific-lo dentro dos termos da Licena Pblica Geral GNU como * publicada pela Fundao do Software Livre (FSF); na verso 3 da * Licena, ou (na sua opinio) qualquer verso. * * Este programa distribudo na esperana de que possa ser til, * mas SEM NENHUMA GARANTIA; sem uma garantia implcita de ADEQUAO * a qualquer MERCADO ou APLICAO EM PARTICULAR. Veja a * Licena Pblica Geral GNU para maiores detalhes. * * Voc deve ter recebido uma cpia da Licena Pblica Geral GNU junto * com este programa, Se no, veja <http://www.gnu.org/licenses/>. */ package com.sporeon.baseutil; import java.util.Collections; import java.util.Comparator; import java.util.List; import org.apache.commons.beanutils.BeanComparator; /** * Classe base para utilitarios de ordenao. * @author Senio Caires */ public final class OrdenacaoUtil { /* ------------------------------ * CONTRUTORES * ------------------------------ */ /** * Construtor padro privado. * @author Senio Caires */ private OrdenacaoUtil() { } /* ------------------------------ * LISTA * ------------------------------ */ /** * Mtodo responsvel por retorna uma lista de Object ordenada pelo nome do campo informado. <br/> * Ordena em ordem crescente. * @author Senio Caires * @param lista - Lista * @param campo - Campo * @return lista ordenada */ public static List ordenarLista(final List lista, final String campo) { return ordenarLista(lista, campo, TipoOrdenacao.CRESCENTE); } /** * Mtodo responsvel por retorna uma lista de Object ordenada pelo nome do campo informado. * @author Senio Caires * @param lista - Lista * @param campo - Campo * @param tipoOrdenacao - Tipo de ordenao * @return lista ordenada */ public static List ordenarLista(final List lista, final String campo, final TipoOrdenacao tipoOrdenacao) { if (lista != null && !lista.isEmpty() && campo != null && !(campo.trim().length() == 0)) { BeanComparator ordem = new BeanComparator(campo, new Comparator() { @Override public int compare(final Object o1, final Object o2) { int resultado = 0; final int maximoCaracteres = 20; if (o1 instanceof Integer) { resultado = ((String) ManipulacaoUtil .adicionarChar('0', maximoCaracteres, o2.toString(), true)) .compareToIgnoreCase((String) ManipulacaoUtil.adicionarChar('0', maximoCaracteres, o1.toString(), true)); } else { resultado = ((String) o2.toString()).compareToIgnoreCase((String) o1.toString()); } return resultado; } }); Collections.sort(lista, ordem); if (TipoOrdenacao.CRESCENTE.equals(tipoOrdenacao)) { Collections.reverse(lista); } } return lista; } }