package edu.brown.catalog.special; import java.util.Collection; import java.util.Iterator; import org.voltdb.catalog.Catalog; import org.voltdb.catalog.CatalogType; import org.voltdb.catalog.ProcParameter; /** * @author pavlo */ public class MultiProcParameter extends SpecialProcParameter implements MultiAttributeCatalogType<ProcParameter> { public static final String PREFIX = "*MultiProcParameter*"; private final InnerMultiAttributeCatalogType<ProcParameter> inner; /** * THIS SHOULD NOT BE CALLED DIRECTLY Use MultiProcParameter.get() * * @param attributes */ public MultiProcParameter(Collection<ProcParameter> attributes) { this.inner = new InnerMultiAttributeCatalogType<ProcParameter>(MultiProcParameter.class, attributes); } public static MultiProcParameter get(ProcParameter... cols) { MultiProcParameter obj = InnerMultiAttributeCatalogType.get(MultiProcParameter.class, cols); return obj; } @Override public Collection<ProcParameter> getAttributes() { return this.inner.getAttributes(); } @Override public Iterator<ProcParameter> iterator() { return this.inner.iterator(); } @Override public String getPrefix() { return PREFIX; } @Override public int size() { return this.inner.size(); } @Override public ProcParameter get(int idx) { return (ProcParameter) this.inner.get(idx); } @SuppressWarnings("unchecked") @Override public <U extends CatalogType> U getParent() { return (U) this.inner.getParent(); } @Override public Catalog getCatalog() { return this.inner.getCatalog(); } @Override public String getName() { return this.inner.getTypeName(); } @Override public String getTypeName() { return this.inner.getTypeName(); } @Override public int hashCode() { return this.inner.hashCode(); } @Override public boolean equals(Object obj) { if (obj instanceof MultiProcParameter == false) return (false); return this.inner.equals(((MultiProcParameter) obj).inner); } @Override public boolean add(ProcParameter e) { return this.inner.add(e); } @Override public boolean addAll(Collection<? extends ProcParameter> c) { return this.inner.addAll(c); } @Override public void clear() { this.inner.clear(); } @Override public boolean contains(Object o) { return this.inner.contains(o); } @Override public boolean containsAll(Collection<?> c) { return this.inner.containsAll(c); } @Override public boolean isEmpty() { return this.inner.isEmpty(); } @Override public boolean remove(Object o) { return this.inner.remove(o); } @Override public boolean removeAll(Collection<?> c) { return this.inner.removeAll(c); } @Override public boolean retainAll(Collection<?> c) { return this.inner.retainAll(c); } @Override public Object[] toArray() { return this.inner.toArray(); } @Override public <T> T[] toArray(T[] a) { return this.inner.toArray(a); } }