package ch.asynk; public interface AbstractModel { boolean isUnsaved(); TObject self(); AbstractMapper getDAO(); default void save() { getDAO().save(self()); } default int delete() { return getDAO().delete(self()); } default void reload() { feedFrom(getDAO().selectSelf(self())); } void feedFrom(TObject obj); }