Interface FrontMatterInfo

All Known Implementing Classes:
ParsedFrontMatter

public interface FrontMatterInfo
FrontMatter services provided within NoSQLBench are required to return the following types. If the markdown source file does not contain the metadata requested, then reasonable non-null defaults must be provided.
  • Field Summary

    Fields 
    Modifier and Type Field Description
    static java.lang.String AGGREGATE  
    static java.util.Set<java.lang.String> FrontMatterKeyWords  
    static java.lang.String INCLUDED  
    static java.lang.String SCOPES  
    static java.lang.String TITLE  
    static java.lang.String TOPICS  
    static java.lang.String WEIGHT  
  • Method Summary

    Modifier and Type Method Description
    java.util.List<java.util.regex.Pattern> getAggregations()
    Aggregation patterns coalesce all the topics that they match into a seamless logical section of content.
    java.util.Set<DocScope> getDocScopes()
    If a markdown source is flagged for use in a specific doc scope, then you can filter for that scope when you ask for markdown.
    java.util.List<java.lang.String> getIncluded()
    If content is included in an item from another topic, then the topic name with which the additional content was added is in the inclueded list of topics.
    java.lang.String getTitle()  
    java.util.Set<java.lang.String> getTopics()
    Topics in this service are taxonomically hierarchical, and use the same naming convention as relative file paths.
    int getWeight()  
  • Field Details

  • Method Details

    • getTitle

      java.lang.String getTitle()
      Returns:
      A title for the given markdown source file.
    • getWeight

      int getWeight()
      Returns:
      A weight for the given markdown source file.
    • getTopics

      java.util.Set<java.lang.String> getTopics()

      Topics in this service are taxonomically hierarchical, and use the same naming convention as relative file paths. (In a *NIX system, meaning forward slashes as path separators).

      The end name on a topic is considered the local topic name. The leading names before this local topic name are considered nested categories. Taken together, these categories (in hierarchic ordered form) are the general category.

      A topic and the location of the markdown content it is part of are NOT bound together.

      Returns:
      A list of categories
    • getIncluded

      java.util.List<java.lang.String> getIncluded()

      If content is included in an item from another topic, then the topic name with which the additional content was added is in the inclueded list of topics.

      This is distinct from getTopics(), which is not modified by the included topic names.

      Returns:
      A list of included topics.
    • getAggregations

      java.util.List<java.util.regex.Pattern> getAggregations()

      Aggregation patterns coalesce all the topics that they match into a seamless logical section of content. All source markdown files which have a topic which is matched by at least one of the aggregation patterns is included in the order of their weight.

      Aggregation patterns are simple regexes. It is possible to have multiple patterns as well as content that is referenced by multiple aggregations, from the same or different source aggregating topics.

      Returns:
      A list of aggregation patterns
    • getDocScopes

      java.util.Set<DocScope> getDocScopes()
      If a markdown source is flagged for use in a specific doc scope, then you can filter for that scope when you ask for markdown.

      Markdown content which contains zero scopes should explicitly return DocScope.NONE. Markdown content which contains one or more scopes should explicitly add DocScope.ANY to the returned set. Markdown should never be tagged with ANY or NONE in the source content. Readers should throw an error if this is detected.

      Returns:
      A list of DocScopes for which this markdown should be used.