silegis-mg/editor-articulacao

View on GitHub
src/validacao/Validador.js

Summary

Maintainability
A
0 mins
Test Coverage
/* Copyright 2017 Assembleia Legislativa de Minas Gerais
 * 
 * This file is part of Editor-Articulacao.
 *
 * Editor-Articulacao is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, version 3.
 *
 * Editor-Articulacao is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with Editor-Articulacao.  If not, see <http://www.gnu.org/licenses/>.
 */

/**
 * Classe abstrata para validar dispositivos.
 */
class Validador {
    /**
     * Constrói o validador.
     * 
     * @param {String[]} tipos Tipos de dispositivos que serão validados.
     * @param {String} descricao Descrição da validação.
     */
    constructor(tipos, descricao) {
        this.tipos = tipos instanceof Array ? new Set(tipos) : new Set([tipos]);
        this.descricao = descricao;
    }

    /**
     * Verifiac se o validador se aplica ao dispositivo.
     * 
     * @param {Element} dispositivo Dispositivo a ser validado.
     */
    aplicaSeA(dispositivo) {
        return this.tipos.has(dispositivo.getAttribute('data-tipo'));
    }
    
    /**
     * Realiza a validação do dispositivo.
     * 
     * @param {Element} dispositivo Dispositivo a ser validado.
     * @returns {Boolean} Verdadeiro se o dispositivo estiver válido.
     */
    validar(dispositivo) {
        throw 'Não implementado.';
    }
}

export default Validador;