package com.thaiopensource.datatype.xsd; abstract class BinaryDatatype extends DatatypeBase implements Measure { BinaryDatatype() { // whiteSpace is actually collapse, but we handle it ourselves for efficiency super(WHITE_SPACE_PRESERVE); } public int valueHashCode(Object value) { byte[] v = (byte[])value; int hc = 0; for (int i = 0, len = v.length; i < len; i++) hc = (hc * 33) ^ (v[i] & 0xFF); return hc; } public boolean sameValue(Object value1, Object value2) { byte[] v1 = (byte[])value1; byte[] v2 = (byte[])value2; if (v1.length != v2.length) return false; for (int i = 0, len = v1.length; i < len; i++) if (v1[i] != v2[i]) return false; return true; } public int getLength(Object obj) { return ((byte[])obj).length; } Measure getMeasure() { return this; } }