package net.sitemorph.protostore; /** * Get a singleton from a crud reader. * * @author damien@sitemorph.net */ import com.google.protobuf.Message; public class CrudSingleton { public static <T extends Message> T read(T.Builder builder, CrudFactory factory) throws CrudException { CrudStore<T> store = factory.getCrudStore(builder); CrudIterator<T> iterator = store.read(builder); if (!iterator.hasNext()) { iterator.close(); throw new MessageNotFoundException("Could not locate singleton"); } T result = iterator.next(); iterator.close(); return result; } }