java.lang.Object
br.ufsc.labsec.signature.conformanceVerifier.report.builder.ReportJSONBuilder
All Implemented Interfaces:
ReportBuilder<org.json.JSONObject,​org.json.JSONObject>

public class ReportJSONBuilder
extends Object
implements ReportBuilder<org.json.JSONObject,​org.json.JSONObject>
  • Constructor Details

    • ReportJSONBuilder

      public ReportJSONBuilder()
  • Method Details

    • createElement

      public ReportBuilder<org.json.JSONObject,​org.json.JSONObject> createElement​(ReportElement value)
      Description copied from interface: ReportBuilder
      Cria 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:
      createElement in interface ReportBuilder<org.json.JSONObject,​org.json.JSONObject>
      Parameters:
      value - relatório
      Returns:
      builder
    • createElement

      public ReportBuilder<org.json.JSONObject,​org.json.JSONObject> createElement​(String tag, String value)
      Description copied from interface: ReportBuilder
      Cria um elemento com um conteúdo de texto
      Specified by:
      createElement in interface ReportBuilder<org.json.JSONObject,​org.json.JSONObject>
      Parameters:
      tag - tag do elemento
      value - valor do elemento
      Returns:
      builder
    • createElement

      public ReportBuilder<org.json.JSONObject,​org.json.JSONObject> createElement​(String tag, Number value)
      Description copied from interface: ReportBuilder
      Cria um elemento com um conteúdo numérico
      Specified by:
      createElement in interface ReportBuilder<org.json.JSONObject,​org.json.JSONObject>
      Parameters:
      tag - tag do elemento
      value - valor do elemento
      Returns:
      builder
    • createElement

      public ReportBuilder<org.json.JSONObject,​org.json.JSONObject> createElement​(String tag, boolean value)
      Description copied from interface: ReportBuilder
      Cria um elemento com um conteúdo booleano
      Specified by:
      createElement in interface ReportBuilder<org.json.JSONObject,​org.json.JSONObject>
      Parameters:
      tag - tag do elemento
      value - valor do elemento
      Returns:
      builder
    • createElement

      public ReportBuilder<org.json.JSONObject,​org.json.JSONObject> createElement​(String tag, Consumer<ReportBuilder<org.json.JSONObject,​org.json.JSONObject>> consumer)
      Description copied from interface: ReportBuilder
      Cria um elemento e o constrói com base em uma função anônima, esse método abstrai a pilha para a criação de elementos complexos.
      Um exemplo do uso é na criação do elemento de certificado em DigitalIdentityReport
      Specified by:
      createElement in interface ReportBuilder<org.json.JSONObject,​org.json.JSONObject>
      Parameters:
      tag - tag do elemento
      consumer - função de criação do elemento
      Returns:
      builder
      See Also:
      DigitalIdentityReport
    • createElementForEach

      public <T> ReportBuilder<org.json.JSONObject,​org.json.JSONObject> createElementForEach​(String tag, String pluralTag, Collection<T> values, BiConsumer<T,​ReportBuilder<org.json.JSONObject,​org.json.JSONObject>> consumer)
      Description copied from interface: ReportBuilder
      Cria 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 em Report.buildConformity(SignatureReport.Conformity, ReportBuilder) (SignatureReport.Conformity, ReportBuilder) Report#buildConformity}
      Specified by:
      createElementForEach in interface ReportBuilder<org.json.JSONObject,​org.json.JSONObject>
      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
    • createElementForEach

      public ReportBuilder<org.json.JSONObject,​org.json.JSONObject> createElementForEach​(Collection<? extends ReportElement> values)
      Description copied from interface: ReportBuilder

      Este 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:
      createElementForEach in interface ReportBuilder<org.json.JSONObject,​org.json.JSONObject>
      Parameters:
      values - relatórios
      Returns:
      builder
    • createElementForEach

      public ReportBuilder<org.json.JSONObject,​org.json.JSONObject> createElementForEach​(String tag, String pluralTag, Collection<String> values)
      Description copied from interface: ReportBuilder
      Cria um elemento lista (plural tag) e elementos filhos dele com a tag
      Specified by:
      createElementForEach in interface ReportBuilder<org.json.JSONObject,​org.json.JSONObject>
      Parameters:
      tag - tag dos elementos
      pluralTag - tag lista
      values - valor dos elementos
      Returns:
      builder
    • getCurrentElement

      public org.json.JSONObject getCurrentElement()
      Description copied from interface: ReportBuilder
      Obtém o elemento atual
      Specified by:
      getCurrentElement in interface ReportBuilder<org.json.JSONObject,​org.json.JSONObject>
      Returns:
      elemento atual
    • getRoot

      public org.json.JSONObject getRoot()
      Description copied from interface: ReportBuilder
      Obtém o elemento raiz
      Specified by:
      getRoot in interface ReportBuilder<org.json.JSONObject,​org.json.JSONObject>
      Returns:
      elemento raiz