Class AbstractParser<T>

java.lang.Object
com.bluebell.greenhouse.sol.parsers.AbstractParser<T>
Type Parameters:
T - csv type to parse
Direct Known Subclasses:
CsvMarketPriceParser, CsvPositionParser, CsvTransactionParser

public abstract class AbstractParser<T> extends Object
Parent-level parser containing re-usable methods.
Version:
1.0.9
Author:
Stephen Prizio
  • Constructor Details

    • AbstractParser

      public AbstractParser()
  • Method Details

    • parseValue

      protected abstract org.javatuples.Pair<Object,String> parseValue(String header, String rawValue, boolean optional)
      Parses a value from the data.
      Parameters:
      header - header
      rawValue - raw value
      optional - is value optional
      Returns:
      Pair
    • parseValue

      protected org.javatuples.Pair<Object,String> parseValue(String header, String rawValue, boolean optional, String format)
      Parses a value from the data with an optional format hint.
      Parameters:
      header - header
      rawValue - raw value
      optional - is value optional
      format - optional format hint
      Returns:
      Pair
    • readLines

      protected org.javatuples.Pair<List<String>, ParsedDataDTO<T>> readLines(File file)
      Reads the contents of the file into a list of strings for processing.
      Parameters:
      file - File
      Returns:
      Pair of either a list of strings or ParsedDataDTO
    • readDelimitedRecords

      protected org.javatuples.Pair<List<List<String>>, ParsedDataDTO<T>> readDelimitedRecords(File file, String delimiter)
      Reads a delimited file into logical csv records for processing.
      Parameters:
      file - source file
      delimiter - delimiter
      Returns:
      Pair of either csv records or ParsedDataDTO
    • identifyHeaders

      protected Map<String,Integer> identifyHeaders(String delimiter, String line, Map<String,Integer> defaultHeaders, Map<String, List<String>> defaultHeaderAliases, Map<String,Integer> optionalHeaders, Map<String, List<String>> optionalHeaderAliases)
      Identifies the headers, if present, for a line of text.
      Parameters:
      delimiter - csv delimiter
      line - data
      defaultHeaders - default headers
      defaultHeaderAliases - default header aliases
      optionalHeaders - optional headers
      optionalHeaderAliases - optional header aliases
      Returns:
      Map of keys to index locations
    • identifyHeaders

      protected Map<String,Integer> identifyHeaders(List<String> headerTokens, Map<String,Integer> defaultHeaders, Map<String, List<String>> defaultHeaderAliases, Map<String,Integer> optionalHeaders, Map<String, List<String>> optionalHeaderAliases)
      Identifies the headers, if present, for tokenized data.
      Parameters:
      headerTokens - header tokens
      defaultHeaders - default headers
      defaultHeaderAliases - default header aliases
      optionalHeaders - optional headers
      optionalHeaderAliases - optional header aliases
      Returns:
      Map of keys to index locations
    • computeValue

      protected org.javatuples.Pair<Object,String> computeValue(String[] dataTokens, String header, int key, boolean optional)
      Computes the value at the specified index for the list of data tokens.
      Parameters:
      dataTokens - data
      header - header
      key - index
      optional - optional value
      Returns:
      Pair with parsed data or error message
    • computeValue

      protected org.javatuples.Pair<Object,String> computeValue(String[] dataTokens, String header, int key, boolean optional, String format)
      Computes the value at the specified index for the list of data tokens.
      Parameters:
      dataTokens - data
      header - header
      key - index
      optional - optional value
      format - optional format hint
      Returns:
      Pair with parsed data or error message
    • computeValue

      protected org.javatuples.Pair<Object,String> computeValue(List<String> dataTokens, String header, int key, boolean optional, String format)
      Computes the value at the specified index for the token list.
      Parameters:
      dataTokens - data tokens
      header - header
      key - index
      optional - optional value
      format - optional format hint
      Returns:
      Pair with parsed data or error message
    • parseValues

      protected org.javatuples.Pair<Map<String, org.javatuples.Pair<Object,String>>, StringBuilder> parseValues(String delimiter, Map<String,Integer> headers, Map<String,Integer> optionalHeaders, String line)
      Parses values into their class values.
      Parameters:
      delimiter - delimiter
      headers - headers
      optionalHeaders - optional headers
      line - raw data
      Returns:
      Pair of data or error message
    • parseValues

      protected org.javatuples.Pair<Map<String, org.javatuples.Pair<Object,String>>, StringBuilder> parseValues(String delimiter, Map<String,Integer> headers, Map<String,Integer> optionalHeaders, String line, String format)
      Parses values into their class values.
      Parameters:
      delimiter - delimiter
      headers - headers
      optionalHeaders - optional headers
      line - raw data
      format - optional format hint
      Returns:
      Pair of data or error message
    • parseValues

      protected org.javatuples.Pair<Map<String, org.javatuples.Pair<Object,String>>, StringBuilder> parseValues(List<String> dataTokens, Map<String,Integer> headers, Map<String,Integer> optionalHeaders, String format)
      Parses tokenized values into their class values.
      Parameters:
      dataTokens - data tokens
      headers - headers
      optionalHeaders - optional headers
      format - optional format hint
      Returns:
      Pair of data or error message
    • generateResults

      protected ParsedDataDTO<T> generateResults(List<org.javatuples.Pair<T, FailedParsedResultEntry>> parsedResults, String fileName)
      Compiles the parsed results into a ParsedDataDTO.
      Parameters:
      parsedResults - List of parsed results
      fileName - file name
      Returns:
      ParsedDataDTO
    • getErroneousResult

      protected org.javatuples.Pair<T, FailedParsedResultEntry> getErroneousResult(String line, org.javatuples.Pair<Map<String, org.javatuples.Pair<Object,String>>, StringBuilder> parsedValues)
      Parameters:
      line - data
      parsedValues - parsed data values
      Returns:
      Pair