// Copyright 2013 Thomas Müller // This file is part of MarMoT, which is licensed under GPLv3. package marmot.core; import java.io.Serializable; import java.util.Arrays; public class Feature implements Serializable { private static final long serialVersionUID = 1L; private int[] bytes_; private short current_length_; private short current_bit_index_; public Feature(int[] bytes, short current_length, short current_bit_index) { bytes_ = bytes; current_length_ = current_length; current_bit_index_ = current_bit_index; } public Feature(int length) { bytes_ = new int[length]; current_length_ = 0; current_bit_index_ = Integer.SIZE; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + Arrays.hashCode(bytes_); result = prime * result + current_bit_index_; result = prime * result + current_length_; return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Feature other = (Feature) obj; if (!Arrays.equals(bytes_, other.bytes_)) return false; if (current_bit_index_ != other.current_bit_index_) return false; if (current_length_ != other.current_length_) return false; return true; } public int[] getBytes() { return bytes_; } public short getCurrentBitIndex() { return current_bit_index_; } public short getCurrentLength() { return current_length_; } public void setBitIndex(short current_bit_index) { current_bit_index_ = current_bit_index; } public void setArrayLength(short current_array_length) { current_length_ = current_array_length; } }