/*
PROGRAM NAME:   Program #4 - Inheritance, Abstract Classes, Interfaces
PROGRAMMER:     Daniel Yim
CLASS:          CSC 202.002
INSTRUCTOR:     Dr. Robert G. Strader
DATE DEVELOPED: February 26, 2008
DATE COMPLETED: February 29, 2008
REFERENCES:     Computer Science -
                    Introduction to Java Programming
                    Y. Daniel Liang

STATEMENT:
    This program will build an inventory system capable of being ordered
    in different ways the user wishes.

    The data provided will be:

        1101 Dryer 7 12 5 A 599.99
        1100 Washer  10  12 4 A 799.99
        1001 WoodPannels 25 1 2 B 25.37
        1012 SheetRock 73 2 7 C 18.25
        1206 Tile 248 7 3 C 24.95
        1033 Wood2x4x6 500 1 5 A 10.75
        1314 Bolts 3000 6 2 B 3.27
        1315 Nuts 2500 6 2 C 0.89
        1819 Refrigerator 4 11 1 A 1449.99
        1438 Saw 12 9 3 C 325.00
        1500 Lamp 30 8 1 B 59.95
        1218 Grout 15 7 5 C 34.95
        1603 Pipe 155 5 2 C 12.87
        1650 Connector 385 5 3 B 3.85


    The data provides the item ID number, the item description, the
    quantity of the item stocked, the location of the item (aisle,
    section, and shelf), and the price of each item respectively on
    individual lines.

    The program will then output the following: the highest priced item
    and its record information, all of the records read from the data
    file in their proper formats, and a listing of the items by aisle,
    section, and shelf.

SAMPLE OUTPUT:

        The highest priced item:

            Item:        1819
            Description: Refrigerator
            Quantity:    4
            Location:    Aisle 11, Section 1, Shelf A
            Price:       $1449.99

        Items found on shelf 'C':

            Item: 1603
                Pipe
                155
                Aisle 5, Section 2, Shelf C
                $12.87

            Item: 1315
                Nuts
                2500
                Aisle 6, Section 2, Shelf C
                $0.89

            Item: 1206
                Tile
                248
                Aisle 7, Section 3, Shelf C
                $24.95

            Item: 1218
                Grout
                15
                Aisle 7, Section 5, Shelf C
                $34.95
        
            Item: 1438
                Saw
                12
                Aisle 9, Section 3, Shelf C
                $325.0
        
        
        All items in the inventory:
        
            Item: 1001
                WoodPannels
                25
                Aisle 1, Section 2, Shelf B
                $25.37
        
            Item: 1033
                Wood2x4x6
                500
                Aisle 1, Section 5, Shelf A
                $10.75
        
            Item: 1603
                Pipe
                155
                Aisle 5, Section 2, Shelf C
                $12.87
        
            Item: 1650
                Connector
                385
                Aisle 5, Section 3, Shelf B
                $3.85
        
            Item: 1314
                Bolts
                3000
                Aisle 6, Section 2, Shelf B
                $3.27
        
            Item: 1315
                Nuts
                2500
                Aisle 6, Section 2, Shelf C
                $0.89
        
            Item: 1206
                Tile
                248
                Aisle 7, Section 3, Shelf C
                $24.95
        
            Item: 1218
                Grout
                15
                Aisle 7, Section 5, Shelf C
                $34.95
        
            Item: 1500
                Lamp
                30
                Aisle 8, Section 1, Shelf B
                $59.95
        
            Item: 1438
                Saw
                12
                Aisle 9, Section 3, Shelf C
                $325.0
        
            Item: 1819
                Refrigerator
                4
                Aisle 11, Section 1, Shelf A
                $1449.99
        
            Item: 1100
                Washer
                10
                Aisle 12, Section 4, Shelf A
                $799.99
        
            Item: 1101
                Dryer
                7
                Aisle 12, Section 5, Shelf A
                $599.99



METHODS USED: 
    readValues(Scanner inputFile, ArrayList<Record> arrayListOfRecords)
                This method reads in all the values inside the data
                file and stores them into appropriate data types
                and then into an individual record.
    sortRecords(ArrayList<Record> arr, String method)
                This method will recursively sort all the record
                entries by aisle, section, or shelf according to a
                parameter that is given.
    findItemsOnShelf(ArrayList<Record> arr, char shelf)
                Finds every item placed on a given shelf
    findHighestPrice()
                Finds the highest priced item in the inventory
    printRecords(ArrayList<Record> arr)
                This method prints every record in the array.

DICTIONARY OF VARIABLES:
    public class Program1
        final boolean debug
            A switch to output every action to aid the development
            process
        final int MAX
            A pre-defined maximum of the inventory size
    public static main void
        File dataFile
            A wrapper for the input file to be used
        ArrayList<Record> recordAList
            An ArrayList of type Record used to store each record of
            the inventory
    public static void readValues
        int id
            A temporary storage of an integer for the ID number
        String description
            A temporary storage of a String for the description
        int quantity
            A temporary storage of an integer for the quantity
        double price
            A temporary storage of a double for the price
        int locAisle
            A temporary storage of an integer for the aisle number
        int locSection
            A temporary storage of an integer for the section number
        char locShelf
            A temporary storage of a char for the shelf
        Location loc
            A temporary storage of type Location for a Location object
    public static void sortRecords
        final int MAXAISLES
            Constant set to the maximum number of aisles in the inventory
        final int MAXSECTIONS
            Constant set to the maximum sections in the inventory
        final char MAXSHELVES
            Constant set to the maximum number of shelves in the inventory
        ArrayList<Record> tempAL
            A temporary ArrayList used to be a copy of the unsorted list
            as the method sorts
        ArrayList<Record> tempAisle/tempSection/tempShelf
            Temporary storage for each type (aisle, section, or shelf)
            that is sorted and is awaiting another sort for a subtype
    public static void findItemsOnShelf
        final char MAXSHELVES
            A constant for the maximum number of shelves in the inventory
---------------------------------------------------------------------------
*/

import java.util.*;
import java.io.*;
import java.lang.Exception;

public class Program4
{
    public static void main(String[] args)
    {
        Octagon o = new Octagon();
    }
}   // End of public class Program4
