Package mikera.vectorz.impl

Source Code of mikera.vectorz.impl.UnmodifiableVector

package mikera.vectorz.impl;

import mikera.vectorz.AVector;
import mikera.vectorz.util.ErrorMessages;

/**
* Unmodifiable wrapped for arbitrary vectors
*
* @author Mike
*
*/
public class UnmodifiableVector extends BaseDerivedVector {
  private static final long serialVersionUID = 2709404707262677811L;

  private UnmodifiableVector(AVector source) {
    super(source);
  }
 
  public UnmodifiableVector wrap(AVector v) {
    return new UnmodifiableVector(v);
  }

  @Override
  public void set(int i, double value) {
    throw new UnsupportedOperationException(ErrorMessages.immutable(this));
  }
 
  @Override
  public void unsafeSet(int i, double value) {
    throw new UnsupportedOperationException(ErrorMessages.immutable(this));
  }
 
  @Override
  public boolean isMutable() {
    return false;
  }
 
  @Override
  public boolean isFullyMutable() {
    return false;
  }
 
  @Override
  public UnmodifiableVector exactClone() {
    return new UnmodifiableVector(source.exactClone());
  }
 
  @Override
  public AVector subVector(int offset, int length) {
    AVector ssv=source.subVector(offset, length);
    if (ssv==source) return this;
    return new UnmodifiableVector(ssv);
  }
 
  @Override
  public AVector sparse() {
    return SparseImmutableVector.create(source);
  }
}
TOP

Related Classes of mikera.vectorz.impl.UnmodifiableVector

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.