Provide an abstract superclass called EnergyRecord and subclasses called Contract and Transaction with default constructors (no-arg) and full-arg, overloaded constructors. Collect abstract commonality in the superclass to be inherited into the subclasses.
Provide instance fields, instance accessor and mutator methods for all of the data fields in each record data files. If no value is provided in the FERC data, then set that characteristic to some default value.
Provide a toString() method to format all of the record data in each class.
Provide an interface called TransactionRelatable with four methods:
- boolean isTransactionChargeSmaller(Object other );
- double findTransactionChargeDifference(Object other);
- boolean isTransactionQuantityGreater(Object other);
- double findTransactionQuantityDifference(Object other);
Implement this interface in the EnergyRecord class.
Provide a driver class that includes the following features:
- creates an instance of each energy record class for each row in the two files
- collects all contract objects into an array of EnergyRecord called contracts
- collects all transaction objects into an array of TransactionRelatable called transactions
- displays all contract data using the toString() method in a loop
- displays all contract and transaction data in a tabular format using accessor methods
- displays the comparisons of the transaction_charge of any two transactions
- displays the comparisons of the transaction_quantity of any two transactions
- displays the minimum price of all transactions
- displays the maximum units of all transactions.
Provide a test script called test_mp1.bat in the test folder to execute the project and send its output to a file called test_mp1_out.txt.
Comment your code and provide a detailed README (pdf only) file that includes:
- project description
- installation, compile and run-time requirements
- development and testing insights with expected results
- screen captures demonstrating all application capabilities
- generate project javadocs documentation
- minimize your main() method code by using intuitive functions
Submit a file called mp1.zip (zip format only) of all project code and documentation to the Digital DropBox link on Blackboard by 09/18/11, 23:59/CST. Note that a completed submission requires the use of both the Add File button and the Send File button. A late mini-project will lose more points the later that it is submitted.