Class Component

java.lang.Object
br.ufsc.labsec.component.Component
Direct Known Subclasses:
CadesSignatureComponent, JadesSignatureComponent, PadesSignatureComponent, PKCS12Repository, SignaturePolicyComponent, SignerComponent, TimeStampComponent, TrustAnchorComponent, ValidationServiceRepository, XadesSignatureComponent

public abstract class Component
extends Object
Abstração de um componente de uma aplicação. Deve conter os serviços providos e os requisitos para poder operar. Os requisitos do componente devem ser declarados como atributos públicos com a anotação @Requirement. Os serviços providos devem ser informados no construtor do componente através da chamada do método defineRoleProvider(String, Object) onde o primeiro parâmetro é o nome do serviço, ou seja, o nome da interface que identifica o serviço e o segundo é a implementação daquele componente para o serviço em questão.
  • Field Details

  • Constructor Details

    • Component

      public Component​(Application application)
      Todos os componentes são criados por uma aplicação. A aplicação está disponível para as implementações dos componentes para que essas implementações possam acessar os parâmetros e os controles básicos da aplicação.
      Parameters:
      application - Instância da aplicação
  • Method Details

    • defineRoleProvider

      protected final void defineRoleProvider​(String role, Object provider)
      Método que deve ser usado pelas implementações de componentes para que estás definam um serviço que provém. Esse método deve ser chamado em geral no construtor da implementação do componente.
      Parameters:
      role - Nome do serviço provido identificado pelo nome da Interface implementada
      provider - Implementação fornecida pelo componente
    • connect

      public final void connect​(String role, Object provider)
      Atribui uma implementação à um campo anotado com @Requirement. O campo será identificado pelo tipo que deve ter o mesmo nome que role
      Parameters:
      role - Nome do serviço
      provider - Implementação do serviço
    • getRole

      public final Object getRole​(String role)
      Método utilizado pela aplicação para obter a implementação de algum serviço. Os serviço são disponibilizados pelo método defineRoleProvider(String, Object) que geralmente é chamado no construtor da Implementação do componente.
      Parameters:
      role - Nome do serviço buscado
      Returns:
      Implementação do serviço ou nulo se não houver
    • getRequirementsNotMeet

      public final Set<String> getRequirementsNotMeet()
    • ready

      public final boolean ready()
      Informa a aplicação se o componente está pronto para execução
      Returns:
      Verdadeiro se está pronto
    • startOperation

      public abstract void startOperation()
      Avisa o componente que a aplicação foi configurada e está tudo pronto para começar a operação.
    • clear

      public abstract void clear()
      Avisa o componente que o seu estado deve ser reiniciado
    • getApplication

      public Application getApplication()
      Obtém a instância da aplicação para acessar os parâmetros ou o Logger
      Returns:
      A instância da aplicação
    • getParameter

      public <T> T getParameter​(String key)
    • getRolesProvided

      public Set<String> getRolesProvided()
      Obtem a lista de interfaces providas pelo componente.
      Returns:
      O conjunto.