// Use serialization-deserialization to make a copy of the prototype
final Object value;
try
{
// @TODO there is probably a more efficient way to do this
ValueSerialization valueSerialization = currentModule.valueSerialization();
String serialized = valueSerialization.serialize( prototype );
value = valueSerialization.deserialize( valueModel.valueType(), serialized);
}
catch( ValueSerializationException e )
{
throw new IllegalStateException( "Could not serialize-copy Value", e );
}