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