CPSC 421-010 Object-Oriented Programming (OOP) Spring 2023

XMLFramework Project

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 @TODOs 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:

Notes: