UNPKG

@lybioit/component-interface-pattern

Version:

Padrão de Interface de Componente - Abstrações para desenvolvimento de componentes reutilizáveis. Projeto da disciplina BRADEPO do IFSP-BRA.

116 lines 3.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ComponentInterface = void 0; /** * ComponentInterface (Interface de Componente) * * Implementação abstrata do elemento da estrutura que agrega os elementos * do subsistema de interface de componente. * * Esta classe serve como ponto central para gerenciar múltiplos portos * de interface, permitindo que um componente se comunique com diversos * outros componentes através de diferentes portos. * * @abstract Esta classe deve ser estendida para implementar comportamentos específicos */ class ComponentInterface { /** * Construtor da interface de componente. * * Inicializa a lista de portos vazia. */ constructor() { /** Identificador único do componente */ this.id = ''; /** Lista de portos de interface associados ao componente */ this.ports = []; this.ports = []; } /** * Retorna o identificador único do componente. * * @returns O ID do componente */ getId() { return this.id; } /** * Recupera um porto específico pelo seu identificador. * * Busca na lista de portos um porto que corresponda ao ID fornecido. * * @param id - O identificador do porto a ser recuperado * @returns O porto encontrado ou undefined se não existir */ getPort(id) { return this.ports.find(port => port.getId() === id); } /** * Conecta um porto externo a um porto específico do componente. * * Estabelece uma conexão entre um porto externo e um porto interno * identificado pelo portId. * * @param externalPort - O porto externo ao qual se conectar * @param portId - O identificador do porto interno */ connectToPort(externalPort, portId) { const selectedPort = this.getPort(portId); if (selectedPort) { selectedPort.connect(externalPort); } } /** * Conecta um porto externo ao componente. * * Método geral para estabelecer conexões com portos externos. * * @param externalPort - O porto externo ao qual se conectar */ connect(externalPort) { // Método geral de conexão } /** * Conecta uma referência não-componente a um porto específico. * * Permite conexões com objetos que não são portos de interface, * como funções, objetos ou outras referências externas. * * @param externalReference - A referência externa não-componente * @param portId - O identificador do porto interno * @throws Error quando o método não está implementado */ connectNonComponent(externalReference, portId) { // TODO Método auto-gerado throw new Error("Método 'connectNonComponent' não implementado"); } /** * Desconecta um porto externo de um porto específico do componente. * * Remove a conexão entre um porto externo e um porto interno * identificado pelo portId. * * @param externalPort - O porto externo do qual se desconectar * @param portId - O identificador do porto interno * @throws Error quando o método não está implementado */ disconnectFromPort(externalPort, portId) { // TODO Método auto-gerado throw new Error("Método 'disconnect' não implementado"); } /** * Desconecta um porto específico do componente. * * Remove todas as conexões de um porto interno identificado pelo portId. * * @param portId - O identificador do porto interno a ser desconectado */ disconnectPort(portId) { const selectedPort = this.getPort(portId); if (selectedPort) { selectedPort.disconnect(); } } } exports.ComponentInterface = ComponentInterface; //# sourceMappingURL=ComponentInterface.js.map