List of usage examples for org.apache.commons.collections.comparators ComparatorChain ComparatorChain
public ComparatorChain()
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); }