package net.enilink.komma.edit.command; import net.enilink.komma.core.URI; import net.enilink.komma.model.IModel; /** * This interface allows to request user interactions from business logic. * */ public interface IInputCallback { /** * Ask for the previously defined inputs. * * @param model * The model that should be used as reference for new names and * others. * * @return <code>true</code> if user has given the required inputs, else * <code>false</code>. */ boolean ask(IModel model); /** * Return the value for the given input type. * * @param inputType * The input type for which the value should be returned. * @return The value for the input type */ Object get(URI inputType); /** * Request a specific type of input. * * @param inputType * The input type that should be requested * @param parameters * The parameters for the input type * * @return This input callback */ IInputCallback require(URI inputType, Object... parameters); }