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

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

Introduction

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

Prototype

public TransformingComparator(Transformer transformer, Comparator decorated) 

Source Link

Document

Constructs an instance with the given Transformer and Comparator.

Usage

From source file:org.openvpms.report.jasper.IMObjectCollectionDataSource.java

/**
 * Sorts a list of IMObjects on a node in the form specified by {@link NodeResolver}.
 *
 * @param objects  the objects to sort//from www  .  ja  va 2s .com
 * @param sortNode the node to sort on
 */
@SuppressWarnings("unchecked")
private void sort(List<IMObject> objects, String sortNode) {
    Comparator comparator = ComparatorUtils.naturalComparator();
    comparator = ComparatorUtils.nullLowComparator(comparator);

    Transformer transformer = new NodeTransformer(sortNode, getArchetypeService());
    TransformingComparator transComparator = new TransformingComparator(transformer, comparator);
    Collections.sort(objects, transComparator);
}

From source file:org.openvpms.web.component.im.relationship.RelationshipStateResultSet.java

/**
 * Helper to return a comparator for a node sort constraint.
 *
 * @param sort the node sort constraint//w  ww  .  j  a v  a2s .c o m
 * @return a comparator for the constraint, or <tt>null</tt> if the
 *         node is not supported
 */
private Comparator getComparator(NodeSortConstraint sort) {
    Transformer transformer = null;
    String name = sort.getNodeName();
    if (RelationshipStateTableModel.NAME_NODE.equals(name)) {
        transformer = new Transformer() {
            public Object transform(Object input) {
                RelationshipState state = ((RelationshipState) input);
                return (source) ? state.getTargetName() : state.getSourceName();
            }
        };
    } else if (RelationshipStateTableModel.DESCRIPTION_NODE.equals(name)) {
        transformer = new Transformer() {
            public Object transform(Object input) {
                RelationshipState state = ((RelationshipState) input);
                return (source) ? state.getTargetDescription() : state.getSourceDescription();
            }
        };
    } else if (RelationshipStateTableModel.DETAIL_NODE.equals(name)) {
        transformer = new Transformer() {
            public Object transform(Object input) {
                RelationshipState state = ((RelationshipState) input);
                return state.getRelationship().getDescription();
            }
        };
    }
    Comparator comparator = null;
    if (transformer != null) {
        comparator = IMObjectSorter.getComparator(sortAscending);
        comparator = new TransformingComparator(transformer, comparator);
    }
    return comparator;
}

From source file:org.openvpms.web.component.im.util.IMObjectSorter.java

/**
 * Returns a new comparator for a virtual node sort constraint.
 *
 * @param sort the sort criteria/* ww w . ja  v  a 2s.c  o  m*/
 * @return a new comparator
 */
@SuppressWarnings("unchecked")
private static Comparator<Object> getComparator(VirtualNodeSortConstraint sort) {
    Comparator comparator = getComparator(sort.isAscending());
    Transformer transformer = sort.getTransformer();
    if (transformer == null) {
        transformer = getTransformer(sort);
    }
    return new TransformingComparator(transformer, comparator);
}

From source file:org.openvpms.web.component.im.util.IMObjectSorter.java

/**
 * Returns a new comparator for a node sort constraint.
 *
 * @param sort the sort criteria/* ww w.  j a  v  a2s. c  o m*/
 * @return a new comparator
 */
@SuppressWarnings("unchecked")
private static Comparator<Object> getComparator(NodeSortConstraint sort) {
    Comparator comparator = getComparator(sort.isAscending());
    Transformer transformer = getTransformer(sort);
    return new TransformingComparator(transformer, comparator);
}

From source file:org.openvpms.web.component.im.util.IMObjectSorter.java

/**
 * Returns a new comparator for a node sort constraint.
 *
 * @param sort        the sort criteria//from  w  w  w .  j a v  a 2 s. c o m
 * @param transformer a transformer to apply
 * @return a new comparator
 */
@SuppressWarnings("unchecked")
private static Comparator<Object> getComparator(NodeSortConstraint sort, Transformer transformer) {
    Comparator comparator = getComparator(sort.isAscending());
    Transformer transform = ChainedTransformer.getInstance(transformer, getTransformer(sort));
    return new TransformingComparator(transform, comparator);
}

From source file:org.openvpms.web.component.im.util.IMObjectSorter.java

/**
 * Returns a new comparator for an archetype property.
 *
 * @param sort the sort criteria/*from ww w . j  a  va 2 s.co  m*/
 * @return a new comparator
 */
@SuppressWarnings("unchecked")
private static Comparator<Object> getComparator(ArchetypeSortConstraint sort) {
    Comparator comparator = getComparator(sort.isAscending());
    Transformer transformer = new ArchetypeTransformer();
    return new TransformingComparator(transformer, comparator);
}

From source file:org.openvpms.web.component.im.util.IMObjectSorter.java

/**
 * Returns a new comparator for an archetype property.
 *
 * @param sort        the sort criteria/*from ww  w.  j  av a  2s  . c o m*/
 * @param transformer a transformer to apply
 * @return a new comparator
 */
@SuppressWarnings("unchecked")
private static Comparator<Object> getComparator(ArchetypeSortConstraint sort, Transformer transformer) {
    Comparator comparator = getComparator(sort.isAscending());
    Transformer transform = ChainedTransformer.getInstance(transformer, new ArchetypeTransformer());
    return new TransformingComparator(transform, comparator);
}

From source file:org.springframework.richclient.list.SortedListModel.java

protected void applyComparator() {
    Integer[] indexes = new Integer[this.indexes.length];
    System.arraycopy(this.indexes, 0, indexes, 0, indexes.length);
    Arrays.sort(indexes,/*from  w w w  .j  a v a2s.  c om*/
            new TransformingComparator(new IndexToElementTransformer(getFilteredModel()), comparator));
    this.indexes = indexes;
    fireContentsChanged(this, -1, -1);
}