package br.com.caelum.stella.format; /** * Formatter é responsável por transfomar cadeias sem formatação em cadeias * formatadas e vice-versa. * * @author Leonardo Bessa */ public interface Formatter { /** * <p> * Formata uma cadeia. * </p> * * @param value * cadeia sem formatado * @return cadeia formatada * @throws IllegalArgumentException * caso argumento seja nulo ou não represente propriamente um * valor sem formato. */ public abstract String format(String value) throws IllegalArgumentException; /** * <p> * Remove a formatação de uma cadeia. * </p> * * @param value * cadeia formatada * @return cadeia sem formato * @throws IllegalArgumentException * caso argumento seja nulo ou não represente propriamente um * valor formatado. */ public abstract String unformat(String value) throws IllegalArgumentException; /** * <p> * Verifica se uma cadeia está no formato com o qual o formatador trabalha. * </p> * * @param value * cadeia a ser verificada * @return true, se estiver de acordo com o formato */ public abstract boolean isFormatted(String value); /** * <p> * Verifica se uma cadeia pode ser formatada por esse formatador. * </p> * * @param value * cadeia a ser verificada * @return true, se este formatador pode formatar a cadeia dada. */ public abstract boolean canBeFormatted(String value); }