Example usage for org.apache.commons.collections.comparators ComparatorChain ComparatorChain

List of usage examples for org.apache.commons.collections.comparators ComparatorChain ComparatorChain

Introduction

In this page you can find the example usage for org.apache.commons.collections.comparators ComparatorChain ComparatorChain.

Prototype

public ComparatorChain() 

Source Link

Document

Construct a ComparatorChain with no Comparators.

Usage

From source file:ComparatorExampleForUserDefinedClass.java

public static void main(String args[]) {
    prepareData();//from  w w w  .  j av  a2 s  . co  m

    ComparatorChain chain = new ComparatorChain();
    chain.addComparator(new NameComparator());
    chain.addComparator(new NumberComparator());

    printArray(dataArray);

    Arrays.sort(dataArray, chain);

    printArray(dataArray);
}

From source file:com.safetys.framework.jmesa.core.sort.MultiColumnSort.java

@SuppressWarnings("unchecked")
public Collection<?> sortItems(Collection<?> items, Limit limit) {
    ComparatorChain chain = new ComparatorChain();

    SortSet sortSet = limit.getSortSet();
    for (Sort sort : sortSet.getSorts()) {
        if (sort.getOrder() == Order.ASC) {
            chain.addComparator(new BeanComparator(sort.getProperty(), new NullComparator()));
        } else if (sort.getOrder() == Order.DESC) {
            chain.addComparator(new BeanComparator(sort.getProperty(), new NullComparator()), true);
        }// www . j  a v  a 2s  . c om
    }

    if (chain.size() > 0) {
        Collections.sort((List<?>) items, chain);
    }

    return items;
}

From source file:com.safetys.framework.jmesa.core.sort.ComparableAwareColumnSort.java

@SuppressWarnings("unchecked")
public Collection<?> sortItems(Collection<?> items, Limit limit) {
    if (items.isEmpty()) {
        return items;
    }/* w  w w . jav a  2  s.c om*/

    ComparatorChain chain = new ComparatorChain();
    SortSet sortSet = limit.getSortSet();

    for (Sort sort : sortSet.getSorts()) {
        Class<?> type = null;

        try {
            type = getPropertyClassType(items, sort.getProperty());
        } catch (Exception e) {
            logger.error("Had problems getting the column sort type.", e);
        }

        if (type != null && Comparable.class.isAssignableFrom(type)) {
            if (sort.getOrder() == Order.ASC) {
                chain.addComparator(new BeanComparator(sort.getProperty(),
                        new NullComparator(ComparableComparator.getInstance())));
            } else if (sort.getOrder() == Order.DESC) {
                chain.addComparator(new BeanComparator(sort.getProperty(),
                        new NullComparator(ComparableComparator.getInstance())), true);
            }
        } else if (sort.getOrder() == Order.ASC) {
            chain.addComparator(new BeanComparator(sort.getProperty(), new NullComparator()));
        } else if (sort.getOrder() == Order.DESC) {
            chain.addComparator(new BeanComparator(sort.getProperty(), new NullComparator()), true);
        }
    }

    if (chain.size() > 0) {
        Collections.sort((List<?>) items, chain);
    }

    return items;
}

From source file:com.cyclopsgroup.waterview.CollectionLargeList.java

/**
 * Overwrite or implement method iterate()
 *
 * @see com.cyclopsgroup.waterview.IteratorLargeList#iterate(int, int, com.cyclopsgroup.waterview.LargeList.Sorting[])
 *///w w w.  ja va2s  .com
public Iterator iterate(int startPosition, int maxAmount, Sorting[] sortings) throws Exception {
    Collection sortedResult = collection;
    if (sortings != null && sortings.length > 0) {
        ComparatorChain chain = new ComparatorChain();
        for (int i = 0; i < sortings.length; i++) {
            Sorting sorting = sortings[i];
            if (sorting.isDescending()) {
                chain.addComparator(new BeanPropertyComparator(sorting.getName()), true);
            } else {
                chain.addComparator(new BeanPropertyComparator(sorting.getName()));
            }
        }
        chain.addComparator(HashCodeComparator.INSTANCE);
        sortedResult = new TreeSet(chain);
        sortedResult.addAll(collection);
    }
    Iterator it = sortedResult.iterator();
    if (startPosition > 0) {
        for (int i = 0; i < startPosition; i++) {
            it.next();
        }
    }
    if (maxAmount == UNLIMITED_MAX_AMOUNT) {
        return it;
    }
    return new FixedSizeIterator(it, maxAmount);
}

From source file:net.sourceforge.fenixedu.presentationTier.backBeans.departmentAdmOffice.ManagementGroupsBackingBean.java

public List<Employee> getEmployees() {
    List<Employee> result = (getDepartment() != null)
            ? new ArrayList<Employee>(getDepartment().getAllCurrentActiveWorkingEmployees())
            : null;//w ww .  java2 s.  c  o m

    if (result != null) {
        ComparatorChain chainComparator = new ComparatorChain();
        chainComparator.addComparator(new BeanComparator("person.name"), false);
        chainComparator.addComparator(new BeanComparator("employeeNumber"), false);
        Collections.sort(result, chainComparator);
    }

    return result;
}

From source file:com.cyclopsgroup.waterview.web.CollectionTabularData.java

/**
 * Overwrite or implement method in CollectionTabularData
 *
 * @see com.cyclopsgroup.waterview.web.TabularData#openIterator(com.cyclopsgroup.waterview.web.Table)
 *///w w w . jav  a 2s .c om
public Iterator openIterator(Table table) throws Exception {
    String[] sortedColumnNames = table.getSortedColumns();
    Collection sortedResult = collection;
    if (sortedColumnNames.length > 0) {
        ComparatorChain chain = new ComparatorChain();
        for (int i = 0; i < sortedColumnNames.length; i++) {
            String columnName = sortedColumnNames[i];
            Column column = table.getColumn(columnName);
            if (column.getSort() == ColumnSort.ASC) {
                chain.addComparator(new BeanPropertyComparator(column.getName()));
            } else if (column.getSort() == ColumnSort.DESC) {
                chain.addComparator(new BeanPropertyComparator(column.getName()), true);
            }
        }
        chain.addComparator(HashCodeComparator.INSTANCE);
        sortedResult = new TreeSet(chain);
        sortedResult.addAll(collection);
    }
    if (table.getPageSize() <= 0) {
        return sortedResult.iterator();
    }
    List list = new ArrayList();
    int index = 0;
    int startIndex = table.getPageSize() * table.getPageIndex();
    for (Iterator i = sortedResult.iterator(); i.hasNext();) {
        Object object = i.next();
        if (index >= startIndex && index < startIndex + table.getPageSize()) {
            list.add(object);
        }
        index++;
    }
    return list.iterator();
}

From source file:net.sourceforge.fenixedu.presentationTier.renderers.providers.VigilantsForGivenVigilantGroup.java

@Override
public Object provide(Object source, Object currentValue) {

    VigilantGroupBean bean = (VigilantGroupBean) source;
    VigilantGroup vigilantGroup = bean.getSelectedVigilantGroup();
    List<VigilantWrapper> vigilants = new ArrayList<VigilantWrapper>();

    if (source instanceof ConvokeBean) {
        ConvokeBean convokeBean = (ConvokeBean) bean;
        vigilants.addAll(convokeBean.getVigilantsSugestion());
        WrittenEvaluation evaluation = convokeBean.getWrittenEvaluation();
        if (evaluation != null && evaluation.getVigilanciesSet().size() > 0) {
            for (Vigilancy convoke : evaluation.getVigilanciesSet()) {
                vigilants.remove(convoke.getVigilantWrapper());
            }/*from  ww w.j a  va  2  s .c o m*/
        }
    } else {
        vigilants.addAll(vigilantGroup.getVigilantWrappersSet());
        ComparatorChain chain = new ComparatorChain();
        chain.addComparator(VigilantWrapper.CATEGORY_COMPARATOR);
        chain.addComparator(VigilantWrapper.USERNAME_COMPARATOR);
        Collections.sort(vigilants, chain);
    }

    return vigilants;

}

From source file:net.sourceforge.fenixedu.dataTransferObject.inquiries.InquiryBlockDTO.java

private void initBlock(InquiryBlock inquiryBlock) {
    setInquiryBlock(inquiryBlock);//from w  w w .j  a  va 2  s.c  o m
    ComparatorChain comparatorChain = new ComparatorChain();
    comparatorChain.addComparator(new BeanComparator("inquiryGroupQuestion.groupOrder"));
    comparatorChain.addComparator(new BeanComparator("order"));
    setInquiryGroups(new TreeSet<InquiryGroupQuestionBean>(comparatorChain));
}

From source file:net.sourceforge.fenixedu.applicationTier.Servico.commons.curriculumHistoric.ReadActiveCurricularCourseScopeByDegreeCurricularPlanAndExecutionYear.java

public SortedSet<DegreeModuleScope> run(String degreeCurricularPlanID, AcademicInterval academicInterval)
        throws FenixServiceException {
    final DegreeCurricularPlan degreeCurricularPlan = FenixFramework.getDomainObject(degreeCurricularPlanID);

    final ComparatorChain comparator = new ComparatorChain();
    comparator.addComparator(new BeanComparator("curricularYear"));
    comparator.addComparator(new BeanComparator("curricularSemester"));
    comparator.addComparator(new BeanComparator("curricularCourse.externalId"));
    comparator.addComparator(new BeanComparator("branch"));

    final SortedSet<DegreeModuleScope> scopes = new TreeSet<DegreeModuleScope>(comparator);

    for (DegreeModuleScope degreeModuleScope : degreeCurricularPlan.getDegreeModuleScopes()) {
        if (degreeModuleScope.isActiveForAcademicInterval(academicInterval)) {
            scopes.add(degreeModuleScope);
        }//ww  w  .ja v  a 2s . c  o  m
    }

    return scopes;
}

From source file:net.sourceforge.fenixedu.presentationTier.Action.teacher.ListVigilanciesForEvaluationDispatchAction.java

private void setState(HttpServletRequest request) {
    String executionCourseID = request.getParameter("executionCourseID");
    request.setAttribute("executionCourseID", executionCourseID);
    String writtenEvaluationID = request.getParameter("evaluationOID");
    WrittenEvaluation evaluation = (WrittenEvaluation) FenixFramework.getDomainObject(writtenEvaluationID);

    ComparatorChain comparator = new ComparatorChain();
    comparator.addComparator(Vigilancy.COMPARATOR_BY_VIGILANT_CATEGORY);
    comparator.addComparator(Vigilancy.COMPARATOR_BY_VIGILANT_USERNAME);

    List<Vigilancy> vigilancies = new ArrayList<Vigilancy>(evaluation.getOthersVigilancies());
    Collections.sort(vigilancies, comparator);
    List<Vigilancy> ownVigilancies = new ArrayList<Vigilancy>(evaluation.getTeachersVigilancies());
    Collections.sort(ownVigilancies, comparator);

    request.setAttribute("evaluation", evaluation);
    request.setAttribute("ownVigilancies", ownVigilancies);
    request.setAttribute("vigilancies", vigilancies);
}