@Override public String getParamsToStore() { String hasherParamsToStore = hasher.getParamsToStore(); return hasher.getClass().getName() + DELIM + (hasherParamsToStore == null ? "" : hasherParamsToStore); }
@Override public void init(String params) { String[] parts = params.split(DELIM, 2); try { this.hasher = (Hasher) Class.forName(parts[0]).newInstance(); this.hasher.init(parts[1]); } catch (Exception e) { throw new RuntimeException("RoKeyDistributor initialization failed", e); } } }
@Override public byte[] getDistributedKey(byte[] originalKey) { return Bytes.add(hasher.getHashPrefix(originalKey), originalKey); }
@Override public byte[] getDistributedKey(byte[] originalKey) { return Bytes.add(hasher.getHashPrefix(originalKey), originalKey); }
@Override public byte[] getOriginalKey(byte[] adjustedKey) { int prefixLength = hasher.getPrefixLength(adjustedKey); if (prefixLength > 0) { return Bytes.tail(adjustedKey, adjustedKey.length - prefixLength); } else { return adjustedKey; } }
@Override public byte[][] getAllDistributedKeys(byte[] originalKey) { byte[][] allPrefixes = hasher.getAllPossiblePrefixes(); byte[][] keys = new byte[allPrefixes.length][]; for (int i = 0; i < allPrefixes.length; i++) { keys[i] = Bytes.add(allPrefixes[i], originalKey); } return keys; }
@Override public byte[] getOriginalKey(byte[] adjustedKey) { int prefixLength = hasher.getPrefixLength(adjustedKey); if (prefixLength > 0) { return Bytes.tail(adjustedKey, adjustedKey.length - prefixLength); } else { return adjustedKey; } }
@Override public String getParamsToStore() { String hasherParamsToStore = hasher.getParamsToStore(); return hasher.getClass().getName() + DELIM + (hasherParamsToStore == null ? "" : hasherParamsToStore); }
@Override public void init(String params) { String[] parts = params.split(DELIM, 2); try { this.hasher = (Hasher) Class.forName(parts[0]).newInstance(); this.hasher.init(parts[1]); } catch (Exception e) { throw new RuntimeException("RoKeyDistributor initialization failed", e); } } }
@Override public byte[][] getAllDistributedKeys(byte[] originalKey) { byte[][] allPrefixes = hasher.getAllPossiblePrefixes(); byte[][] keys = new byte[allPrefixes.length][]; for (int i = 0; i < allPrefixes.length; i++) { keys[i] = Bytes.add(allPrefixes[i], originalKey); } return keys; }