<commit_before>package br.com.concretesolutions.canarinho.watcher;

import android.text.Editable;
import android.text.InputFilter;
import android.text.Selection;
import android.text.TextWatcher;

import br.com.concretesolutions.canarinho.formatador.Formatador;
import br.com.concretesolutions.canarinho.validator.Validador;
import br.com.concretesolutions.canarinho.validator.ValidadorCEP;
import br.com.concretesolutions.canarinho.watcher.evento.EventoDeValidacao;

/**
 * {@link TextWatcher} responsável por formatar e validar um {@link android.widget.EditText} para CEPs.
 * Para usar este componente basta criar uma instância e chamar
 * {@link android.widget.EditText#addTextChangedListener(TextWatcher)}.
 */
public final class CEPTextWatcher implements TextWatcher {

    private static final char[] CEP_DIGITOS = "#####-###".toCharArray();

    private static final InputFilter[] FILTRO_OITO_DIGITOS = new InputFilter[]{
            new InputFilter.LengthFilter(CEP_DIGITOS.length)};

    private final Validador validador = ValidadorCEP.getInstance();
    private final Validador.ResultadoParcial resultadoParcial = new Validador.ResultadoParcial();
    private EventoDeValidacao callbackErros;

    private boolean mudancaInterna = false;
    private int tamanhoAnterior = 0;

    public CEPTextWatcher() {
    }

    /**
     * Inicializa o validador com um callback de erros.
     *
     * @param callbackErros Instância que será chamada quando houverem erros.
     */
    public CEPTextWatcher(EventoDeValidacao callbackErros) {
        this.callbackErros = callbackErros;
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {<commit_msg>Correção de checkstyle<commit_after>package br.com.concretesolutions.canarinho.watcher;

import android.text.Editable;
import android.text.InputFilter;
import android.text.Selection;
import android.text.TextWatcher;

import br.com.concretesolutions.canarinho.formatador.Formatador;
import br.com.concretesolutions.canarinho.validator.Validador;
import br.com.concretesolutions.canarinho.validator.ValidadorCEP;
import br.com.concretesolutions.canarinho.watcher.evento.EventoDeValidacao;

/**
 * {@link TextWatcher} responsável por formatar e validar um {@link android.widget.EditText} para CEPs.
 * Para usar este componente basta criar uma instância e chamar
 * {@link android.widget.EditText#addTextChangedListener(TextWatcher)}.
 */
public final class CEPTextWatcher implements TextWatcher {

    private static final char[] CEP_DIGITOS = "#####-###".toCharArray();

    private static final InputFilter[] FILTRO_OITO_DIGITOS = new InputFilter[]{
            new InputFilter.LengthFilter(CEP_DIGITOS.length)};

    private final Validador validador = ValidadorCEP.getInstance();
    private final Validador.ResultadoParcial resultadoParcial = new Validador.ResultadoParcial();
    private EventoDeValidacao callbackErros;

    private boolean mudancaInterna = false;
    private int tamanhoAnterior = 0;

    /**
     * Construtor default
     */
    public CEPTextWatcher() {
    }

    /**
     * Inicializa o validador com um callback de erros.
     *
     * @param callbackErros Instância que será chamada quando houverem erros.
     */
    public CEPTextWatcher(EventoDeValidacao callbackErros) {
        this.callbackErros = callbackErros;
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
{'fraction_non_alphanumeric': 0.08678044547295342, 'fraction_numerical': 0.0005785363031530228, 'mean_word_length': 4.454258675078864, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3024938', 'n_tokens_mistral': 1068, 'n_tokens_neox': 1044, 'n_words': 244}