Package br.ufsc.labsec.component
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 Summary
Fields Modifier and Type Field Description protected Application
application
-
Constructor Summary
Constructors Constructor Description Component(Application application)
Todos os componentes são criados por uma aplicação. -
Method Summary
Modifier and Type Method Description abstract void
clear()
Avisa o componente que o seu estado deve ser reiniciadovoid
connect(String role, Object provider)
Atribui uma implementação à um campo anotado com @Requirement.protected 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.Application
getApplication()
Obtém a instância da aplicação para acessar os parâmetros ou o Logger<T> T
getParameter(String key)
Set<String>
getRequirementsNotMeet()
Object
getRole(String role)
Método utilizado pela aplicação para obter a implementação de algum serviço.Set<String>
getRolesProvided()
Obtem a lista de interfaces providas pelo componente.boolean
ready()
Informa a aplicação se o componente está pronto para execuçãoabstract void
startOperation()
Avisa o componente que a aplicação foi configurada e está tudo pronto para começar a operação.
-
Field Details
-
application
-
-
Constructor Details
-
Component
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
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 implementadaprovider
- Implementação fornecida pelo componente
-
connect
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çoprovider
- Implementação do serviço
-
getRole
Método utilizado pela aplicação para obter a implementação de algum serviço. Os serviço são disponibilizados pelo métododefineRoleProvider(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
-
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
Obtém a instância da aplicação para acessar os parâmetros ou o Logger- Returns:
- A instância da aplicação
-
getParameter
-
getRolesProvided
Obtem a lista de interfaces providas pelo componente.- Returns:
- O conjunto.
-