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
Parent-level parser containing re-usable methods.
- Version:
- 1.0.9
- Author:
- Stephen Prizio
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncomputeValue(String[] dataTokens, String header, int key, boolean optional) Computes the value at the specified index for the list of data tokens.computeValue(String[] dataTokens, String header, int key, boolean optional, String format) Computes the value at the specified index for the list of data tokens.computeValue(List<String> dataTokens, String header, int key, boolean optional, String format) Computes the value at the specified index for the token list.protected ParsedDataDTO<T> generateResults(List<org.javatuples.Pair<T, FailedParsedResultEntry>> parsedResults, String fileName) Compiles the parsed results into aParsedDataDTO.protected org.javatuples.Pair<T, FailedParsedResultEntry> getErroneousResult(String line, org.javatuples.Pair<Map<String, org.javatuples.Pair<Object, String>>, StringBuilder> parsedValues) Returns aFailedParsedResultEntry.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.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.parseValue(String header, String rawValue, boolean optional) Parses a value from the data.parseValue(String header, String rawValue, boolean optional, String format) Parses a value from the data with an optional format hint.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.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.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.protected org.javatuples.Pair<List<List<String>>, ParsedDataDTO<T>> readDelimitedRecords(File file, String delimiter) Reads a delimited file into logical csv records for processing.protected org.javatuples.Pair<List<String>, ParsedDataDTO<T>> Reads the contents of the file into a list of strings for processing.
-
Constructor Details
-
AbstractParser
public AbstractParser()
-
-
Method Details
-
parseValue
-
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- headerrawValue- raw valueoptional- is value optionalformat- optional format hint- Returns:
Pair
-
readLines
Reads the contents of the file into a list of strings for processing.- Parameters:
file-File- Returns:
Pairof either a list of strings orParsedDataDTO
-
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 filedelimiter- delimiter- Returns:
Pairof either csv records orParsedDataDTO
-
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 delimiterline- datadefaultHeaders- default headersdefaultHeaderAliases- default header aliasesoptionalHeaders- optional headersoptionalHeaderAliases- optional header aliases- Returns:
Mapof 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 tokensdefaultHeaders- default headersdefaultHeaderAliases- default header aliasesoptionalHeaders- optional headersoptionalHeaderAliases- optional header aliases- Returns:
Mapof 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- dataheader- headerkey- indexoptional- optional value- Returns:
Pairwith 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- dataheader- headerkey- indexoptional- optional valueformat- optional format hint- Returns:
Pairwith 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 tokensheader- headerkey- indexoptional- optional valueformat- optional format hint- Returns:
Pairwith 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- delimiterheaders- headersoptionalHeaders- optional headersline- raw data- Returns:
Pairof 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- delimiterheaders- headersoptionalHeaders- optional headersline- raw dataformat- optional format hint- Returns:
Pairof 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 tokensheaders- headersoptionalHeaders- optional headersformat- optional format hint- Returns:
Pairof data or error message
-
generateResults
protected ParsedDataDTO<T> generateResults(List<org.javatuples.Pair<T, FailedParsedResultEntry>> parsedResults, String fileName) Compiles the parsed results into aParsedDataDTO.- Parameters:
parsedResults-Listof parsed resultsfileName- 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) Returns aFailedParsedResultEntry.- Parameters:
line- dataparsedValues- parsed data values- Returns:
Pair
-