protected int hashCode(int length) { Preconditions.checkArgument(length<=length()); int result = 17; for (int i = offset; i < offset+length; i++) { result = 31 * result + (int)array[i]; } return result; }
void copyTo(byte[] dest, int destOffset) { System.arraycopy(array,offset,dest,destOffset,length()); }
/** * Thread-safe hashcode method for StaticBuffer written according to * Effective Java 2e by Josh Bloch. * * @return hashcode for given StaticBuffer */ @Override public int hashCode() { return hashCode(length()); }
@Override public <T> T getValueAs(Factory<T> factory) { return super.as(factory,valuePosition,super.length()-valuePosition); }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null) return false; if (!(o instanceof StaticBuffer)) return false; final StaticBuffer b = (StaticBuffer) o; return length() == b.length() && compareTo(b) == 0; }