* drop own implementation of a reverting comparator by using @InvertibleComparator@ of Spring * fixed some generics

git-svn-id: svn+ssh://svn.synyx.de/var/svn/synyx/opensource/hera/trunk@11640 5a64d73e-33d6-4ccc-9058-23f8668ecac9
This commit is contained in:
Oliver Gierke
2010-06-24 13:27:26 +00:00
parent 5bc37d6af5
commit b4e6491e45
3 changed files with 10 additions and 46 deletions

View File

@@ -16,12 +16,12 @@
package org.synyx.hera.core; package org.synyx.hera.core;
import java.io.Serializable;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import org.springframework.core.annotation.AnnotationAwareOrderComparator; import org.springframework.core.annotation.AnnotationAwareOrderComparator;
import org.springframework.util.comparator.InvertibleComparator;
/** /**
@@ -48,8 +48,9 @@ public class OrderAwarePluginRegistry<T extends Plugin<S>, S> extends
/** /**
* Comparator reverting the {@value #DEFAULT_COMPARATOR}. * Comparator reverting the {@value #DEFAULT_COMPARATOR}.
*/ */
@SuppressWarnings("unchecked")
private static final Comparator<Object> DEFAULT_REVERSE_COMPARATOR = private static final Comparator<Object> DEFAULT_REVERSE_COMPARATOR =
new RevertingComparator<Object>(DEFAULT_COMPARATOR); new InvertibleComparator(DEFAULT_COMPARATOR, false);
private Comparator<? super T> comparator; private Comparator<? super T> comparator;
@@ -61,8 +62,8 @@ public class OrderAwarePluginRegistry<T extends Plugin<S>, S> extends
* @param plugins the {@link Plugin}s to be contained in the registry or * @param plugins the {@link Plugin}s to be contained in the registry or
* {@literal null} if the registry shall be empty initally. * {@literal null} if the registry shall be empty initally.
* @param comparator the {@link Comparator} to be used for ordering the * @param comparator the {@link Comparator} to be used for ordering the
* {@link Plugin}s or {@literal null} if the {@code * {@link Plugin}s or {@literal null} if the
* #DEFAULT_COMPARATOR} shall be used. * {@code #DEFAULT_COMPARATOR} shall be used.
*/ */
protected OrderAwarePluginRegistry(List<? extends T> plugins, protected OrderAwarePluginRegistry(List<? extends T> plugins,
Comparator<? super T> comparator) { Comparator<? super T> comparator) {
@@ -73,8 +74,8 @@ public class OrderAwarePluginRegistry<T extends Plugin<S>, S> extends
/** /**
* Creates a new {@link OrderAwarePluginRegistry} using the {@code * Creates a new {@link OrderAwarePluginRegistry} using the
* #DEFAULT_COMPARATOR}. * {@code #DEFAULT_COMPARATOR}.
* *
* @param <T> * @param <T>
* @param <S> * @param <S>
@@ -208,41 +209,6 @@ public class OrderAwarePluginRegistry<T extends Plugin<S>, S> extends
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public OrderAwarePluginRegistry<T, S> reverse() { public OrderAwarePluginRegistry<T, S> reverse() {
return create(plugins, new RevertingComparator(comparator)); return create(plugins, new InvertibleComparator(comparator, false));
}
/**
* Comparator to revert the ordering of the given delegate.
*
* @author Oliver Gierke - gierke@synyx.de
*/
private static final class RevertingComparator<T> implements Comparator<T>,
Serializable {
private static final long serialVersionUID = 5296103845985772391L;
private final Comparator<? super T> delegate;
/**
* Creates a new {@link RevertingComparator}.
*
* @param delegate
*/
public RevertingComparator(Comparator<? super T> delegate) {
this.delegate = delegate;
}
/*
* (non-Javadoc)
*
* @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
*/
public int compare(T first, T second) {
return -1 * delegate.compare(first, second);
}
} }
} }

View File

@@ -57,8 +57,7 @@ public class BeanListFactoryBean<T> extends AbstractTypeAwareSupport<T>
* *
* @see org.springframework.beans.factory.FactoryBean#getObjectType() * @see org.springframework.beans.factory.FactoryBean#getObjectType()
*/ */
@SuppressWarnings("unchecked") public Class<?> getObjectType() {
public Class getObjectType() {
return List.class; return List.class;
} }

View File

@@ -46,8 +46,7 @@ public class PluginRegistryFactoryBean<T extends Plugin<S>, S> extends
* *
* @see org.springframework.beans.factory.FactoryBean#getObjectType() * @see org.springframework.beans.factory.FactoryBean#getObjectType()
*/ */
@SuppressWarnings("unchecked") public Class<?> getObjectType() {
public Class getObjectType() {
return PluginRegistry.class; return PluginRegistry.class;
} }