Package br.ufsc.labsec.component
Class Component
java.lang.Object
br.ufsc.labsec.component.Component
- Direct Known Subclasses:
CacheComponent,CertificateComponent,PKCS12Repository,SignatureComponent,SignaturePolicyComponent,SignerComponent,TimeStampComponent,TrustAnchorComponent,ValidationServiceRepository
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 Applicationapplication -
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 voidclear()Avisa o componente que o seu estado deve ser reiniciadovoidconnect(String role, Object provider)Atribui uma implementação a um campo anotado com @Requirement.voidcopyFieldsTo(Component copy)Copia os atributos relevantes da instância que chama esse método para copy.protected voiddefineRoleProvider(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.ApplicationgetApplication()Obtém a instância da aplicação para acessar os parâmetros ou o Logger<T> TgetParameter(String key)Set<String>getRequirementsNotMeet()ObjectgetRole(String role)Método utilizado pela aplicação para obter a implementação de algum serviço.booleanready()Informa a aplicação se o componente está pronto para execuçãoabstract voidstartOperation()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
-
copyFieldsTo
Copia os atributos relevantes da instância que chama esse método para copy.- Parameters:
copy- objeto que receberá as cópias dos atributos
-
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 a 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
-