package org.juxtapose.streamline.util.data; /** * @author Pontus J�rgne * Dec 30, 2011 * Copyright (c) Pontus J�rgne. All rights reserved * @param <T> */ public abstract class DataType<T> { final T m_value; DataType( T inValue ) { m_value = inValue; } public T get() { return m_value; } public String toString() { return get().toString(); } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ public boolean equals( Object inObject ) { if( inObject instanceof DataType<?> ) { return get().equals( ((DataType<?>)inObject).get() ); } return false; } public int hashCode() { return get().hashCode(); } public byte[] serialize( byte[] inField ) { throw new IllegalAccessError( "This method has not been properly subclassed by datatype"); } public byte[] getByteArrayFrame( byte[] inField, int inLength ) { byte[] bytes = new byte[ inField.length + inLength ]; System.arraycopy(inField, 0, bytes, 0, inField.length); return bytes; } }