javolution.util.internal.collection.ComparatorCollectionImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of javolution-core-java-msftbx
Show all versions of javolution-core-java-msftbx
Only the Java Core part of Javolution library, with slight modifications for use in MSFTBX.
The newest version!
/*
* Javolution - Java(TM) Solution for Real-Time and Embedded Systems
* Copyright (C) 2012 - Javolution (http://javolution.org/)
* All rights reserved.
*
* Permission to use, copy, modify, and distribute this software is
* freely granted, provided that this notice is preserved.
*/
package javolution.util.internal.collection;
import java.util.Comparator;
import java.util.Iterator;
import javolution.util.function.Equality;
import javolution.util.internal.comparator.WrapperComparatorImpl;
import javolution.util.service.CollectionService;
/**
* A view using a custom comparator.
*/
public class ComparatorCollectionImpl extends CollectionView {
private static final long serialVersionUID = 0x600L; // Version.
protected final Equality comparator;
@SuppressWarnings("unchecked")
public ComparatorCollectionImpl(CollectionService target, Comparator super E> comparator) {
super(target);
this.comparator = (comparator instanceof Equality) ?
(Equality) comparator : new WrapperComparatorImpl(comparator);
}
@Override
public boolean add(E element) {
return target().add(element);
}
@Override
public void clear() {
target().clear();
}
@Override
public Equality super E> comparator() {
return comparator;
}
@Override
public boolean isEmpty() {
return target().isEmpty();
}
@Override
public Iterator iterator() {
return target().iterator();
}
@Override
public int size() {
return target().size();
}
}