Class ReportDocumentBuilder
- All Implemented Interfaces:
- ReportBuilder<Document,Element>
public class ReportDocumentBuilder extends Object implements ReportBuilder<Document,Element>
Classe para evitar a redundância da criação de um objecto Document.
Existem dois tipos de nodos
- Folha: possuem um valor texto. Podem ser criados a partir de Strings ou conversões para String. Representam valores de um relatório
- Ramo: possuem nodos filhos. São elementos que normalmente representam um relatório
Para o builder ser reaproveitável na contrução de múltiplos nodos complexos, os elementos que serão manipulados estão em uma pilha. Quando necessário, o elemento que deve ser contruído é colocado no topo dessa pilha e depois retirado.
Para criações de elementos ramo que não são relatórios recomenda-se a utilização do método createComplexElement que recebe de parâmetro uma função anônima que indica as ações que o builder deve executar com esse elemento
- 
Constructor SummaryConstructors Constructor Description ReportDocumentBuilder(String rootElementTag)ReportDocumentBuilder(Document document)
- 
Method SummaryModifier and Type Method Description ReportDocumentBuildercreateElement(ReportElement value)Cria um elemento baseado em um relatório.ReportDocumentBuildercreateElement(String tag)ReportDocumentBuildercreateElement(String tag, boolean bool)Cria um elemento com um conteúdo booleanoReportDocumentBuildercreateElement(String tag, Number number)Cria um elemento com um conteúdo numéricoReportDocumentBuildercreateElement(String tag, String value)Cria um elemento com um conteúdo de textoReportDocumentBuildercreateElement(String elementTag, Consumer<ReportBuilder<Document,Element>> consumer)Cria um elemento e o constrói com base em uma função anônima, esse método abstrái a pilha para a criação de elementos complexos.
 Um exemplo do uso é na criação do elemento de certificado em DigitalIdentityReportReportDocumentBuildercreateElementForEach(String tag, String pluralTag, Collection<String> values)Cria um elemento lista (plural tag) e elementos filhos dele com a tag<T> ReportBuilder<Document,Element>createElementForEach(String tag, String pluralTag, Collection<T> values, BiConsumer<T,ReportBuilder<Document,Element>> consumer)Cria uma lista de elementos e os constrói com base em uma função anônima.ReportDocumentBuildercreateElementForEach(Collection<? extends ReportElement> values)Este método leva em conta a possibilidade de relatórios de tipos diferentes estarem presentes na lista.ElementgetCurrentElement()Obtém o elemento atualDocumentgetRoot()Obtém o elemento raizvoidgoToElement(String tag)ElementpopElement()voidsetCurrentElement(String tag)Cria um elemento vazio e define-o no topo da pilhaMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface br.ufsc.labsec.signature.conformanceVerifier.report.builder.ReportBuildercreateElement
- 
Constructor Details- 
ReportDocumentBuilder- Throws:
- ParserConfigurationException
 
- 
ReportDocumentBuilder
 
- 
- 
Method Details- 
createElementCria um elemento baseado em um relatório. O builder é 'emprestado' para o relatório, assim, o elemento a ser criado é adicionado ao topo da pilha e depois é removido- Specified by:
- createElementin interface- ReportBuilder<Document,Element>
- Parameters:
- value- relatório
- Returns:
- builder
 
- 
createElement- Specified by:
- createElementin interface- ReportBuilder<Document,Element>
 
- 
createElementDescription copied from interface:ReportBuilderCria um elemento com um conteúdo de texto- Specified by:
- createElementin interface- ReportBuilder<Document,Element>
- Parameters:
- tag- tag do elemento
- value- valor do elemento
- Returns:
- builder
 
- 
createElementDescription copied from interface:ReportBuilderCria um elemento com um conteúdo numérico- Specified by:
- createElementin interface- ReportBuilder<Document,Element>
- Parameters:
- tag- tag do elemento
- number- valor do elemento
- Returns:
- builder
 
- 
createElementDescription copied from interface:ReportBuilderCria um elemento com um conteúdo booleano- Specified by:
- createElementin interface- ReportBuilder<Document,Element>
- Parameters:
- tag- tag do elemento
- bool- valor do elemento
- Returns:
- builder
 
- 
createElementForEachpublic ReportDocumentBuilder createElementForEach(String tag, String pluralTag, Collection<String> values)Description copied from interface:ReportBuilderCria um elemento lista (plural tag) e elementos filhos dele com a tag- Specified by:
- createElementForEachin interface- ReportBuilder<Document,Element>
- Parameters:
- tag- tag dos elementos
- pluralTag- tag lista
- values- valor dos elementos
- Returns:
- builder
 
- 
createElementForEachDescription copied from interface:ReportBuilderEste método leva em conta a possibilidade de relatórios de tipos diferentes estarem presentes na lista. Primeiramente, os relatório são agrupados pela tag pluralizada e são adicionados ao elemento com esta tag. Caso o elemento com a tag pluralizada não exista, ele é criado. - Specified by:
- createElementForEachin interface- ReportBuilder<Document,Element>
- Parameters:
- values- relatórios
- Returns:
- builder
 
- 
getCurrentElementDescription copied from interface:ReportBuilderObtém o elemento atual- Specified by:
- getCurrentElementin interface- ReportBuilder<Document,Element>
- Returns:
- elemento atual
 
- 
getRootDescription copied from interface:ReportBuilderObtém o elemento raiz- Specified by:
- getRootin interface- ReportBuilder<Document,Element>
- Returns:
- elemento raiz
 
- 
setCurrentElementCria um elemento vazio e define-o no topo da pilha- Specified by:
- setCurrentElementin interface- ReportBuilder<Document,Element>
- Parameters:
- tag- tag do elemento
 
- 
createElementpublic ReportDocumentBuilder createElement(String elementTag, Consumer<ReportBuilder<Document,Element>> consumer)Cria um elemento e o constrói com base em uma função anônima, esse método abstrái a pilha para a criação de elementos complexos.
 Um exemplo do uso é na criação do elemento de certificado em DigitalIdentityReport- Specified by:
- createElementin interface- ReportBuilder<Document,Element>
- Parameters:
- elementTag- tag do elemento
- consumer- função de criação do elemento
- Returns:
- builder
- See Also:
- DigitalIdentityReport
 
- 
createElementForEachpublic <T> ReportBuilder<Document,Element> createElementForEach(String tag, String pluralTag, Collection<T> values, BiConsumer<T,ReportBuilder<Document,Element>> consumer)Description copied from interface:ReportBuilderCria uma lista de elementos e os constrói com base em uma função anônima. Esse método abstrai a pilha para a criação de elementos complexos.
 O uso desse método é recomendado para a criação de listas de elementos que não são relatórios. O consumer, ou a função que o implementa, deve receber de argumento o valor T e o builder, nesta ordem.
 Um exemplo do uso é na criação do elemento conformities emReport.buildConformity(SignatureReport.Conformity, ReportBuilder)(SignatureReport.Conformity, ReportBuilder) Report#buildConformity}- Specified by:
- createElementForEachin interface- ReportBuilder<Document,Element>
- Type Parameters:
- T- tipo dos valores
- Parameters:
- tag- tag do elemento
- pluralTag- tag da lista
- values- valores da lista
- consumer- função de criação do elemento
- Returns:
- builder
 
- 
goToElement- Specified by:
- goToElementin interface- ReportBuilder<Document,Element>
 
- 
popElement- Specified by:
- popElementin interface- ReportBuilder<Document,Element>
 
 
-