package dials.dial;
import dials.messages.ContextualMessage;
public interface Dialable {
/**
* Attempt to dial a filter. The dialing of a feature can include an increase(expansion), decrease(contraction), or both.
* The dialing of a filter is dependent on how it can logically increase or decrease. Not all Filters may be Dialable.
*/
void dial(ContextualMessage message, String filterName);
/**
* Based on the pattern retrieved for a given dial, consume it in a meaningful manner for the given filter.
* <p/>
* Patterns are a relatively free form concept to allow for the differences in filter increase or decrease.
* For instance, a Date Range filter may have a pattern of 'add 1 day' or 'remove 1 day' which when consumed by the filter
* would result in the addition or removal of a day from the end of the date range.
*/
Object consumeDialPattern(String pattern);
}