public <T> Prop<T> autoConstructs(Supplier<T> t) { Prop on = this; if (!isCannon()) { Prop<T> already = (Prop<T>) findCannon(); if (already == null) { toCannon(); on.setCannon(); } else { on = already; } } on.autoConstructor = (Supplier) t; return (Prop<T>) on; }