
package dbtest;

import java.io.*;
import java.util.*;
import datastore.*;
import olddb.*;

class DbTest
{
    DataStore datastore;

    DbTest (String dir)
    {
        datastore = new DbDataStore (dir);
    }

    void listDocuments (List<Document> documents, DsDate date, String indent)
    {
        for (Document document : documents)
        {
            System.out.println (indent + document.getOid () + " " +
                document.getTitle (date));
/*
            List<Document> children = document.getChildren (date);
            if (children != null)
                listDocuments (children, date, indent + "  ");
*/
        }
    }

    void listProducts (DsDate date)
    {
        List<Product> products = datastore.getProducts (date);

        for (Product product : products)
        {
            try
            {
                System.out.println (product.getMnemonic ());

                System.out.println ("  Count types:");
                List<CountType> countTypes = product.getCountTypes (date);
                for (CountType countType : countTypes)
                    System.out.println ("    " + countType.getName (date));

                System.out.println ("  Documents:");
                listDocuments (product.getDocuments (date), date, "    ");
            }
            catch (IOException e)
            {
                System.out.println ("DbTest.listProducts: " + e.getMessage ());
            }
        }
    }

    static void usage ()
    {
        System.out.println ("Usage: DbTest <report-dir>");
        System.exit (1);
    }

    public static void main (String [] args)
    {
        if (args.length != 1)
            usage ();

        DbTest db = new DbTest (args [0]);
        DsDate date = new DsDate (2006, 12);
        db.listProducts (date);
    }
}

