Branch: Iss#2 Created PushbackAndPositionReader that will act as input
reader for HtmlFiles. This class will track the position of the data,
and allow for pushback when parsers overstep.
Created implementation of PushbackAndPositionReader that also consumes
new lines. Implemented testing cases.
Branch: Iss #2; Defined HtmlParser interface.
Branch Iss #2; step three: Updated HtmlData class that will act as the
encapsulated parsed data class.
Branch Iss #2; Step four: implemented HtmlClosingParser
Updated HtmlClosingParser to throw custom errors when encountering
unexpected state.
Added ParsingException superclass and sub classes for parsing state
situations.
Updated UnclosedTagParserException to use standardized form
"UnclosedTagParsingException" instead.
Updated HtmlClosingParser to include different exception thrown
dependencing on opening or closing tag.
Updated HtmlClosingParserTest to include updated functionality.
Updated HtmlParser into abstract class so that it may implement static
methods useful for parsers to know.
Branch Iss #2: Updated HtmlClosingParser. State regarding the HtmlData
is no longer held in the parser itself, but updated via the
MutableHtmlData which is a mutable implementation of HtmlData.
Branch Iss #2: Extracted HtmlData interface from HtmlData to allow
MutableHtmlData to hide its mutablility.
Moved HtmlDataImpl to MutableHtmlData and added some increased
functionality to allow for accurate displaying of data via toString as
well as if open/close tags were in place.
Updated ParsingException to be HtmlData wrapper so that it may be
returned by a parser without parser knowing if an error was thrown. This
will allow for errors to be caught and their subsequent data extracted
for display via the toString method.
Updated ParsingException subclasses to include required functionality.
Updated MutableHtmlData to include equals clause for easy unit testing.
Updated HtmlClosingParserTest to include exception catching, result
matching and unreading.
Updated HtmlClosingParser to pass failing test of unread.
Updated PushbackAndPositionReaderMock to include a getRemainingData
method that returns the remaining data as a string for easy testing.
Updated HtmlClosingParser to include calls to this method.