gson-compile/gson-compile-processor/src/main/java/io/gitlab/jfronny/gson/compile/processor/util/DelegateList.java

197 lines
4.1 KiB
Java

package io.gitlab.jfronny.gson.compile.processor.util;
import org.jetbrains.annotations.NotNull;
import java.util.*;
import java.util.function.*;
import java.util.stream.Stream;
public class DelegateList<T> implements List<T> {
private final List<T> delegate;
public DelegateList(List<T> delegate) {
Objects.requireNonNull(delegate);
this.delegate = delegate instanceof DelegateList<T> dl ? dl.unwrap() : delegate;
}
@Override
public int size() {
return delegate.size();
}
@Override
public boolean isEmpty() {
return delegate.isEmpty();
}
@Override
public boolean contains(Object o) {
return delegate.contains(o);
}
@NotNull
@Override
public Iterator<T> iterator() {
return delegate.iterator();
}
@Override
public void forEach(Consumer<? super T> action) {
delegate.forEach(action);
}
@NotNull
@Override
public Object[] toArray() {
return delegate.toArray();
}
@NotNull
@Override
public <T1> T1[] toArray(@NotNull T1[] t1s) {
return delegate.toArray(t1s);
}
@Override
public <T1> T1[] toArray(IntFunction<T1[]> generator) {
return delegate.toArray(generator);
}
@Override
public boolean add(T t) {
return delegate.add(t);
}
@Override
public boolean remove(Object o) {
return delegate.remove(o);
}
@Override
public boolean containsAll(@NotNull Collection<?> collection) {
return delegate.containsAll(collection);
}
@Override
public boolean addAll(@NotNull Collection<? extends T> collection) {
return delegate.addAll(collection);
}
@Override
public boolean addAll(int i, @NotNull Collection<? extends T> collection) {
return delegate.addAll(i, collection);
}
@Override
public boolean removeAll(@NotNull Collection<?> collection) {
return delegate.removeAll(collection);
}
@Override
public boolean removeIf(Predicate<? super T> filter) {
return delegate.removeIf(filter);
}
@Override
public boolean retainAll(@NotNull Collection<?> collection) {
return delegate.retainAll(collection);
}
@Override
public void replaceAll(UnaryOperator<T> operator) {
delegate.replaceAll(operator);
}
@Override
public void sort(Comparator<? super T> c) {
delegate.sort(c);
}
@Override
public void clear() {
delegate.clear();
}
@Override
public T get(int i) {
return delegate.get(i);
}
@Override
public T set(int i, T t) {
return delegate.set(i, t);
}
@Override
public void add(int i, T t) {
delegate.add(i, t);
}
@Override
public T remove(int i) {
return delegate.remove(i);
}
@Override
public int indexOf(Object o) {
return delegate.indexOf(o);
}
@Override
public int lastIndexOf(Object o) {
return delegate.lastIndexOf(o);
}
@NotNull
@Override
public ListIterator<T> listIterator() {
return delegate.listIterator();
}
@NotNull
@Override
public ListIterator<T> listIterator(int i) {
return delegate.listIterator(i);
}
@NotNull
@Override
public List<T> subList(int i, int i1) {
return delegate.subList(i, i1);
}
@Override
public Spliterator<T> spliterator() {
return delegate.spliterator();
}
@Override
public Stream<T> stream() {
return delegate.stream();
}
@Override
public Stream<T> parallelStream() {
return delegate.parallelStream();
}
@Override
public int hashCode() {
return delegate.hashCode();
}
@Override
public boolean equals(Object obj) {
return obj instanceof DelegateList<?> dl ? delegate.equals(dl.delegate) : delegate.equals(obj);
}
@Override
public String toString() {
return delegate.toString();
}
private List<T> unwrap() {
return delegate instanceof DelegateList<T> dl ? dl.unwrap() : delegate;
}
}