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.

74 lines 2.57 kB
import { PortOutbox } from '../required/PortOutbox'; /** * InterfacePort (Porto de Interface) * * Implementação abstrata de um porto de interface que é o elemento da estrutura * responsável por receber as invocações das operações fornecidas pelo componente. * * Um porto de interface atua como ponto de entrada para comunicação com outros * componentes, gerenciando conexões através de sua caixa de saída (outbox). * * @abstract Esta classe deve ser estendida para implementar comportamentos específicos */ export declare abstract class InterfacePort { /** Identificador único do porto */ protected id: string; /** Caixa de saída associada ao porto para gerenciar conexões externas */ protected outbox: PortOutbox | null; /** * Inicializa o porto de interface. * * Este método deve ser implementado pelas classes filhas para configurar * o estado inicial do porto e suas dependências. * * @abstract */ abstract initialize(): void; /** * Retorna o identificador único do porto. * * @returns O ID do porto */ getId(): string; /** * Retorna a caixa de saída associada ao porto. * * @returns A caixa de saída ou null se não houver uma associada */ getOutbox(): PortOutbox | null; /** * Conecta este porto a um porto externo. * * Estabelece uma conexão com outro porto de interface através da caixa * de saída, se ela for do tipo StandardPortOutbox. * * @param externalPort - O porto externo ao qual se conectar */ connect(externalPort: InterfacePort): void; /** * Conecta este porto a uma referência não-componente. * * 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 */ connectNonComponent(externalReference: any): void; /** * Desconecta este porto de um porto externo específico. * * Remove a conexão com um porto externo específico, mantendo * outras conexões ativas. * * @param externalPort - O porto externo do qual se desconectar */ disconnectFrom(externalPort: InterfacePort): void; /** * Desconecta completamente o porto. * * Remove todas as conexões externas e limpa a referência à caixa * de saída, efetivamente isolando o porto. */ disconnect(): void; } //# sourceMappingURL=InterfacePort.d.ts.map