/** * convert Object to String depending on key. * * <p>StoreRepository takes only StorageEngine<ByteArray,byte[]> and for persistence on disk we * need to convert them to String.<br> * * @param key * @param value * @return */ private Versioned<Object> convertStringToObject(String key, Versioned<String> value) { Object valueObject = null; if (CLUSTER_KEY.equals(key)) { valueObject = clusterMapper.readCluster(new StringReader(value.getValue())); } else if (STORES_KEY.equals(key)) { valueObject = storeMapper.readStoreList(new StringReader(value.getValue())); } else if (SERVER_STATE_KEY.equals(key) || CLUSTER_STATE_KEY.equals(key)) { valueObject = VoldemortState.valueOf(value.getValue()); } else if (NODE_ID_KEY.equals(key)) { valueObject = Integer.parseInt(value.getValue()); } else if (REBALANCING_STEAL_INFO.equals(key)) { String valueString = value.getValue(); if (valueString.startsWith("[")) { valueObject = RebalancerState.create(valueString); } else { valueObject = new RebalancerState(Arrays.asList(RebalancePartitionsInfo.create(valueString))); } } else { throw new VoldemortException( "Unhandled key:'" + key + "' for String to Object serialization."); } return new Versioned<Object>(valueObject, value.getVersion()); }
public VoldemortState getServerState() { return VoldemortState.valueOf(metadataCache.get(SERVER_STATE_KEY).getValue().toString()); }
public Object getClusterState() { return VoldemortState.valueOf(metadataCache.get(CLUSTER_STATE_KEY).getValue().toString()); }