package org.warp.jcwdb; import java.io.IOException; import java.util.function.BiConsumer; import java.util.function.BiFunction; import java.util.function.Consumer; import java.util.function.Function; public interface Editable { /** * Reccomended way to edit the value * * @param editFunction * @throws IOException */ void editValue(BiFunction editFunction); /** * Reccomended way to edit the value * @param editFunction * @throws IOException */ void editValue(Function editFunction); /** * Reccomended way to edit the value * @param editFunction * @throws IOException */ void editValue(BiConsumer editFunction); /** * Reccomended way to edit the value * @param editFunction * @throws IOException */ void editValue(Consumer editFunction); /** * Reccomended way to view the value * @param viewFunction * @throws IOException */ void viewValue(Consumer viewFunction); /** * Substitute the old value with a new one * @param val * @throws IOException */ void setValue(T val); /** * DO NOT ATTEMPT TO MODIFY THE VALUE RETURNED * @return */ T getValueReadOnlyUnsafe(); }