Primitive-Collections/src/main/resources/speiger/assets/collections/templates/collections/AbstractCollection.template

129 lines
2.7 KiB
Plaintext

package speiger.src.collections.PACKAGE.collections;
#if !TYPE_OBJECT
import java.util.Collection;
#endif
import java.util.AbstractCollection;
#if !TYPE_OBJECT
import speiger.src.collections.PACKAGE.utils.ITERATORS;
#endif
public abstract class ABSTRACT_COLLECTION KEY_GENERIC_TYPE extends AbstractCollection<CLASS_TYPE> implements COLLECTION KEY_GENERIC_TYPE
{
@Override
public abstract ITERATOR KEY_GENERIC_TYPE iterator();
#if !TYPE_OBJECT
@Override
@Deprecated
public boolean add(CLASS_TYPE e) { return COLLECTION.super.add(e); }
@Override
public boolean addAll(COLLECTION c) {
boolean modified = false;
for(KEY_TYPE e : c) {
modified |= add(e);
}
return modified;
}
@Override
@Deprecated
public boolean contains(Object e) { return COLLECTION.super.contains(e); }
@Override
public boolean contains(KEY_TYPE e) {
for(KEY_TYPE entry : this) { if(entry == e) return true; }
return false;
}
@Override
public boolean containsAll(Collection<?> c)
{
return c instanceof COLLECTION ? containsAll((COLLECTION)c) : super.containsAll(c);
}
@Override
public boolean addAll(Collection<? extends CLASS_TYPE> c)
{
return c instanceof COLLECTION ? addAll((COLLECTION)c) : super.addAll(c);
}
@Override
public boolean removeAll(Collection<?> c)
{
return c instanceof COLLECTION ? removeAll((COLLECTION)c) : super.removeAll(c);
}
@Override
public boolean retainAll(Collection<?> c)
{
return c instanceof COLLECTION ? retainAll((COLLECTION)c) : super.retainAll(c);
}
@Override
public boolean containsAll(COLLECTION c) {
for(KEY_TYPE e : c)
if(!contains(e))
return false;
return true;
}
@Override
public boolean containsAny(COLLECTION c) {
for(KEY_TYPE e : c)
if(contains(e))
return true;
return false;
}
@Override
@Deprecated
public boolean remove(Object e) { return COLLECTION.super.remove(e); }
@Override
public boolean REMOVE_KEY(KEY_TYPE e) {
for(ITERATOR iter = iterator();iter.hasNext();) {
if(EQUALS(iter.NEXT(), e)) {
iter.remove();
return true;
}
}
return false;
}
@Override
public boolean removeAll(COLLECTION c) {
boolean modified = false;
for(ITERATOR iter = iterator();iter.hasNext();) {
if(c.contains(iter.NEXT())) {
iter.remove();
modified = true;
}
}
return modified;
}
@Override
public boolean retainAll(COLLECTION c) {
boolean modified = false;
for(ITERATOR iter = iterator();iter.hasNext();) {
if(!c.contains(iter.NEXT())) {
iter.remove();
modified = true;
}
}
return modified;
}
public KEY_TYPE[] TO_ARRAY() {
return TO_ARRAY(new KEY_TYPE[size()]);
}
public KEY_TYPE[] TO_ARRAY(KEY_TYPE[] a) {
if(a == null || a.length < size()) a = new KEY_TYPE[size()];
ITERATORS.unwrap(a, iterator());
return a;
}
#endif
}