/*
* 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.set;
import javolution.util.function.Predicate;
import javolution.util.internal.collection.FilteredCollectionImpl;
import javolution.util.service.SetService;
/**
* A filtered view over a set.
*/
public class FilteredSetImpl<E> extends FilteredCollectionImpl<E> implements
SetService<E> {
private static final long serialVersionUID = 0x600L; // Version.
public FilteredSetImpl(SetService<E> target, Predicate<? super E> filter) {
super(target, filter);
}
@SuppressWarnings("unchecked")
@Override
public SetService<E>[] split(int n, boolean updateable) {
SetService<E>[] subTargets = target().split(n, updateable);
SetService<E>[] result = new SetService[subTargets.length];
for (int i = 0; i < subTargets.length; i++) {
result[i] = new FilteredSetImpl<E>(subTargets[i], filter);
}
return result;
}
/** Returns the actual target */
@Override
protected SetService<E> target() {
return (SetService<E>) super.target();
}
}