package water; /** * Utility class to support Iced objects. */ public class IcedUtils { /** Deep-copy clone given iced object. */ static public <T extends Iced> T deepCopy(T iced) { if (iced == null) return null; AutoBuffer ab = new AutoBuffer(); iced.write(ab); ab.flipForReading(); // Create a new instance return (T) TypeMap.newInstance(iced.frozenType()).read(ab); } }