package com.subgraph.orchid.directory.parsing; import java.util.ArrayList; import java.util.List; public class BasicDocumentParsingResult<T> implements DocumentParsingResultHandler<T>, DocumentParsingResult<T> { private final List<T> documents; private T invalidDocument; private boolean isOkay; private boolean isInvalid; private boolean isError; private String message; public BasicDocumentParsingResult() { documents = new ArrayList<T>(); isOkay = true; isInvalid = false; isError = false; message = ""; } public T getDocument() { if(documents.size() != 1) { throw new IllegalStateException(); } return documents.get(0); } public List<T> getParsedDocuments() { return new ArrayList<T>(documents); } public boolean isOkay() { return isOkay; } public boolean isInvalid() { return isInvalid; } public T getInvalidDocument() { return invalidDocument; } public boolean isError() { return isError; } public String getMessage() { return message; } public void documentParsed(T document) { documents.add(document); } public void documentInvalid(T document, String message) { isOkay = false; isInvalid = true; invalidDocument = document; this.message = message; } public void parsingError(String message) { isOkay = false; isError = true; this.message = message; } }