package com.aconex.scrutineer; import java.io.IOException; import java.io.ObjectInputStream; public enum LongIdAndVersionFactory implements IdAndVersionFactory { INSTANCE; @Override public LongIdAndVersion create(Object id, long version) { return new LongIdAndVersion(toLong(id), version); } private long toLong(Object id) { if (id instanceof Number) { return ((Number) id).longValue(); } else { return Long.parseLong(id.toString()); } } public LongIdAndVersion readFromStream(ObjectInputStream inputStream) throws IOException { return new LongIdAndVersion(inputStream.readLong(), inputStream.readLong()); } }