package mikera.vectorz.impl; import mikera.vectorz.AVector; /** * Derived vector delegates all calls to an underlying vector * @author Mike */ public abstract class BaseDerivedVector extends AVector { private static final long serialVersionUID = -9039112666567131812L; protected final AVector source; protected BaseDerivedVector(AVector source) { this.source=source; } @Override public int length() { return source.length(); } @Override public double get(int i) { return source.get(i); } @Override public double unsafeGet(int i) { return source.unsafeGet(i); } @Override public double dotProduct(double[] data, int offset) { return source.dotProduct(data,offset); } @Override public void set(int i, double value) { source.set(i,value); } @Override public void unsafeSet(int i, double value) { source.unsafeSet(i,value); } @Override public void getElements(double[] dest, int offset) { source.getElements(dest, offset); } @Override public boolean isView() { return true; } @Override public boolean isFullyMutable() { return source.isFullyMutable(); } @Override public boolean isMutable() { return source.isMutable(); } @Override public boolean equals(AVector v) { return source.equals(v); } @Override public boolean equalsArray(double[] data, int offset) { return source.equalsArray(data, offset); } }