package io.fathom.cloud.state;
import javax.inject.Inject;
public class RepositoryBase {
@Inject
protected StateStore stateStore;
// protected <T extends Builder, V> V deserialize(StateNode node,
// Builder<T> builder) throws StateStoreException {
// try {
// return node.deserialize(builder);
// } catch (IOException e) {
// throw new StateStoreException("Error reading item: "
// + node.getPath(), e);
// }
// }
// protected <T> List<T> deserializeChildren(StateNode parent, Builder
// builder)
// throws CloudException {
// List<T> items = Lists.newArrayList();
// for (StateNode child : parent.getChildren()) {
// try {
// builder.clear();
// T item = (T) child.deserialize(builder);
// items.add(item);
// } catch (IOException e) {
// throw new IllegalStateException("Error reading item: "
// + child.getPath(), e);
// }
// }
// return items;
// }
// final Random random = new Random();
//
// synchronized int getRandom(int max) {
// return random.nextInt(max);
// }
// protected Message putItem(StateNode parent, GeneratedMessage.Builder
// builder, FieldDescriptor idField)
// throws CloudException {
// long id = ((Number) builder.getField(idField)).longValue();
// boolean isCreate = false;
//
// if (id == 0) {
// isCreate = true;
// }
//
// while (true) {
// if (isCreate) {
// // Assign a new user id, randomly
// id = getRandom(Integer.MAX_VALUE);
// if (parent.hasChild(Long.toHexString(id))) {
// continue;
// }
// builder.setField(idField, id);
// }
//
// Message built = builder.build();
//
// ByteString data = built.toByteString();
//
// StateNode node = parent.child(Long.toHexString(id));
//
// if (isCreate) {
// if (!node.create(data)) {
// continue;
// }
// } else {
// node.update(data);
// }
// return built;
// }
// }
}