The project is a critical part of your overall grade in the course, and parts of the project count toward 25% of the questions on the Final Exam. Consider this as a take-home part of the Final Exam. No matter how you performed on the previous projects, you need to work on this project.
The project is due by 11:59:59 pm on Friday, May 5. The project consists of the following:
The open-layered architecture framework, XMLFramework, supports all of this and includes:
There is a lot of code in the project already. The primary task is to finish the remaining @TODOs. Some examples are:
// @TODO Add to the factory method so that it generates the correct parser
// @TODO Apply encapsulation and information hiding
// @TODO Apply the const specifier to methods where applicable
// @TODO Create a Filter that outputs XML statistics
// @TODO Declare a XMLParserHandler for XMLParser to use
// @TODO Declare the class XMLParserDocumentHandler which inherits from XMLParserHandler
// @TODO Enforce that no one can inherit from XPathFilter
// @TODO Implement the XMLDocumentHandlerParser
// @TODO Integrate use of XMLDocumentHandlerParser into this method
// @TODO Make it so that there is only one parser object in the entire
// @TODO Remove any unused include files
// @TODO Remove need for destructor definition
// @TODO Remove unused include files
// @TODO Replace this code with a call to the action of the class MacroFilter
// @TODO Replace with an instance of a MacroFilter
// @TODO Use override where appropriate
The @TODO
s that involve integrating your XMLParser into the framework are not required and, if completed, will count as extra credit for the projects.
The work involved is:
@TODO
s@pattern
and @role
comments. A class can participate in multiple roles in multiple patterns.Notes:
git grep
works well. For all the lines of code that contain @TODO
, enter the command git grep "@TODO"
in the project's top directory. To see only the filenames, git grep -l "@TODO"
. The command depends on the directory where you issue the command, e.g., if in the directory framework; the results are for that directory and its subdirectories. A command for a comprehensive report of which @TODO
s are left:
More on this command