Class AttributeValueReport
- All Implemented Interfaces:
ReportElement
public class AttributeValueReport extends AbstractReport
-
Field Summary
Fields inherited from class br.ufsc.labsec.signature.conformanceVerifier.report.AbstractReport
DATE_TIME_FORMATTER
-
Constructor Summary
Constructors Constructor Description AttributeValueReport(String parent)
AttributeValueReport(HashMap<String,Object> information)
-
Method Summary
Modifier and Type Method Description protected void
buildCertElements(Collection<ValidationDataReport> reports, ReportBuilder<?,?> documentBuilder)
Constrói os elementos XML relacionados aos certificados a partir de uma coleção de relatórios de validação.protected <T> void
buildElementForEach(String key, ReportBuilder<?,?> documentBuilder, List<T> elementList)
Constrói elementos XML repetidos a partir de uma lista de dados.protected void
buildElements(ReportBuilder<?,?> documentBuilder)
Constrói os elementos XML principais deste relatório utilizando oReportBuilder
.protected void
buildExtraElements(ReportBuilder<?,?> documentBuilder, String key, Object value)
Constrói elementos XML adicionais de forma recursiva com base no tipo do valor associado à chave.LinkedHashMap<String,Object>
getCurrent()
String
getElementTag()
Retorna a tag do elementoLinkedHashMap<String,Object>
getInformation()
Retorna o mapa completo de informações armazenadas.Object
getValue(String key)
Retorna o valor associado à chave fornecida no mapa de informações.LinkedHashMap<String,Object>
popCurrent()
void
putValue(Object value)
Insere um valor no mapa atual, inferindo o tipo do valor fornecido.void
putValue(Object key, Object value)
Insere um valor no mapa de informações, considerando o tipo da chave e do valor.void
setCurrent(String newMapKey)
Methods inherited from class br.ufsc.labsec.signature.conformanceVerifier.report.AbstractReport
addAllErrorMessages, addErrorMessage, clear, formatDate, generateDocument, generateElement, generateJSON, getErrorMessages
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface br.ufsc.labsec.signature.conformanceVerifier.report.builder.ReportElement
getPluralElementTag
-
Constructor Details
-
AttributeValueReport
-
AttributeValueReport
-
-
Method Details
-
setCurrent
-
getCurrent
-
popCurrent
-
getElementTag
Description copied from interface:ReportElement
Retorna a tag do elemento- Returns:
- A tag do elemento
-
buildElements
Constrói os elementos XML principais deste relatório utilizando oReportBuilder
.Define o elemento atual com base na tag deste elemento e, em seguida, delega a construção de elementos adicionais para cada entrada do mapa
information
. No final, o elemento atual é removido da pilha.Se ocorrer um erro de caractere inválido no nome de algum elemento, uma exceção
DOMException
será capturada e registrada.- Specified by:
buildElements
in classAbstractReport
- Parameters:
documentBuilder
- o construtor de relatório utilizado para criar os elementos XML.
-
buildExtraElements
Constrói elementos XML adicionais de forma recursiva com base no tipo do valor associado à chave.Se o valor for uma
String
, um elemento simples será criado. Se for umLinkedHashMap
, os elementos filhos serão construídos recursivamente. Se for umaList
, será chamado o métodobuildElementForEach
. Se for umReportElement
, será adicionado diretamente ao documento.- Parameters:
documentBuilder
- o construtor de relatório usado para criar os elementos.key
- o nome do elemento a ser criado.value
- o valor associado à chave, que pode ser um mapa, lista, string ouReportElement
.
-
buildElementForEach
protected <T> void buildElementForEach(String key, ReportBuilder<?,?> documentBuilder, List<T> elementList)Constrói elementos XML repetidos a partir de uma lista de dados.Este método verifica o tipo dos itens na lista: se forem do tipo
ValidationDataReport
, delega parabuildCertElements
. Caso contrário, a lista é formatada e separada entre elementos do tipoString
eLinkedHashMap
para criação estruturada dos elementos.- Type Parameters:
T
- o tipo dos elementos contidos na lista.- Parameters:
key
- a chave base usada para nomear os elementos XML.documentBuilder
- o construtor de relatório utilizado para gerar os elementos.elementList
- a lista de elementos a serem convertidos em XML.
-
buildCertElements
protected void buildCertElements(Collection<ValidationDataReport> reports, ReportBuilder<?,?> documentBuilder)Constrói os elementos XML relacionados aos certificados a partir de uma coleção de relatórios de validação.Para cada certificado válido, é criado um elemento
Certificate
dentro de um contêinerCertificates
utilizando oReportBuilder
. Cada relatório é responsável por construir seu próprio elemento de certificado através do métodoValidationDataReport.buildCertificate(Pair, ReportBuilder)
.- Parameters:
reports
- a coleção de objetosValidationDataReport
que contêm os dados dos certificados.documentBuilder
- o construtor de relatório utilizado para gerar os elementos XML.
-
putValue
Insere um valor no mapa de informações, considerando o tipo da chave e do valor.Se a chave for uma
String
e o valor for umaString
ouLinkedHashMap
, o par será inserido diretamente no mapa atual.Se o valor for um
AlgorithmIdentifier
, será convertido para o nome do algoritmo e inserido como string.Se o valor for uma
List
, um novo contexto temporário será criado com a chave como nome, os elementos da lista serão processados e, ao final, o contexto será removido.Se a chave for um
Certificate
, será criado um contexto com base no número de série do certificado (se for uma instância deX509Certificate
) e o valor será processado recursivamente.- Parameters:
key
- a chave associada ao valor, podendo ser umaString
ou umCertificate
.value
- o valor a ser inserido, podendo ser umaString
,LinkedHashMap
,List
ouAlgorithmIdentifier
.
-
putValue
Insere um valor no mapa atual, inferindo o tipo do valor fornecido.Se o valor for uma
List
, o tipo dos elementos é verificado: - Se forem certificados, a lista será processada especificamente como tal. - Caso contrário, será processada genericamente com base no tipo do primeiro elemento.Se o valor for um
AbstractReport
, será adicionado diretamente ao mapa com chave nula simbólica.- Parameters:
value
- o valor a ser processado e inserido, podendo ser umaList
ou umAbstractReport
.
-
getValue
Retorna o valor associado à chave fornecida no mapa de informações.- Parameters:
key
- a chave do valor a ser recuperado.- Returns:
- o valor correspondente, ou
null
se a chave não existir.
-
getInformation
Retorna o mapa completo de informações armazenadas.Este mapa contém os pares chave-valor organizados durante a construção do relatório.
- Returns:
- o mapa de informações atual como
LinkedHashMap
.
-