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.

98 lines 3.56 kB
import { InterfacePort } from './InterfacePort'; /** * 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 */ export declare abstract class ComponentInterface { /** Identificador único do componente */ protected id: string; /** Lista de portos de interface associados ao componente */ protected ports: InterfacePort[]; /** * Construtor da interface de componente. * * Inicializa a lista de portos vazia. */ constructor(); /** * Inicializa a interface de componente. * * Este método deve ser implementado pelas classes filhas para configurar * o estado inicial do componente e seus portos. * * @abstract */ abstract initialize(): void; /** * Retorna o identificador único do componente. * * @returns O ID do componente */ getId(): string; /** * 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: string): InterfacePort | undefined; /** * 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: InterfacePort, portId: string): void; /** * 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: InterfacePort): void; /** * 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: any, portId: string): void; /** * 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: InterfacePort, portId: string): void; /** * 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: string): void; } //# sourceMappingURL=ComponentInterface.d.ts.map