package jetbrains.mps.internal.collections.runtime.impl;
/*Generated by MPS */
import jetbrains.mps.internal.collections.runtime.Sequence;
import jetbrains.mps.internal.collections.runtime.IMapping;
import jetbrains.mps.internal.collections.runtime.IMapSequence;
import java.util.Map;
import jetbrains.mps.internal.collections.runtime.ISequence;
import java.util.Set;
import java.util.Collections;
import java.util.Collection;
import java.util.Iterator;
import jetbrains.mps.internal.collections.runtime.ISetSequence;
import jetbrains.mps.internal.collections.runtime.SetSequence;
public class NullMapSequence<U, V> extends Sequence<IMapping<U, V>> implements IMapSequence<U, V>, Map<U, V> {
public static final NullMapSequence<Object, Object> INSTANCE = new NullMapSequence<Object, Object>();
protected NullMapSequence() {
}
@Override
public IMapping<U, V> first() {
return null;
}
@Override
public IMapping<U, V> last() {
return null;
}
@Override
public ISequence<IMapping<U, V>> cut(int length) {
return this;
}
@Override
public ISequence<IMapping<U, V>> skip(int length) {
return this;
}
@Override
public ISequence<IMapping<U, V>> tail(int length) {
return this;
}
@Override
public ISequence<IMapping<U, V>> take(int length) {
return this;
}
@Override
public ISequence<IMapping<U, V>> page(int skip, int skipplustake) {
return this;
}
@Override
public void clear() {
}
@Override
public boolean containsKey(Object key) {
return false;
}
@Override
public boolean containsValue(Object value) {
return false;
}
@Override
public Set<Map.Entry<U, V>> entrySet() {
return Collections.emptySet();
}
@Override
public V get(Object key) {
return null;
}
@Override
public Set<U> keySet() {
return Collections.emptySet();
}
@Override
public V put(U key, V value) {
return null;
}
@Override
public void putAll(Map<? extends U, ? extends V> m) {
}
@Override
public V remove(Object key) {
return null;
}
@Override
public int size() {
return 0;
}
@Override
public Collection<V> values() {
return Collections.emptySet();
}
@Override
public IMapSequence<U, V> putAll(IMapSequence<? extends U, ? extends V> map) {
return this;
}
@Override
public V putValue(U key, V value) {
return null;
}
@Override
public V removeKey(U u) {
return null;
}
@Override
public Map<U, V> toMap() {
return this;
}
@Override
public Iterator<IMapping<U, V>> iterator() {
return new NullSequence.EmptyIterator<IMapping<U, V>>();
}
@Override
public ISetSequence<IMapping<U, V>> mappingsSet() {
return SetSequence.fromSet(Collections.<IMapping<U, V>>emptySet());
}
@SuppressWarnings(value = "unchecked")
public static <P, Q> NullMapSequence<P, Q> instance() {
return (NullMapSequence<P, Q>) INSTANCE;
}
}