/*
 * Applicationimpl.java
 * class to implement Application interface
 * in AddressBook API
 */

import addressbooklib.*;
import addressbooklib.Application;
import com.ms.com.IUnknown;
import com.ms.com.Variant;

/**
 * Implementation of Application dual interface<br>
 * Top-level object for AddressBook API
 * @Author Ken Bandes
 */
public class Applicationimpl 
    implements addressbooklib.Application
{
    private static final String CLSID = 
        "4F9DFA91-32EF-11D1-B5AC-9E4A44000000";


    /**
     * constructor
     */
    Applicationimpl()
    {
        addressBooks = new AddressBooksimpl(this);
    }

    /**
     * implementation of addressbook.Application.getApplication
     * @return the Application object for the API (in this case, this)
     */
    public Application getApplication()
    {
        return (Application) this;
    }

    /**
     * implementation of addressbook.Application.getParent
     * @return the parent object of this object (in this case, itself)
     */
    public Application getParent()
    {
        return (Application) this;
    }

    /**
     * implementation of addressbook.Application.getName
     * @return the application name
     */
    public String getName()
    {
        return "AddressBook";
    }

    /**
     * implementation of addressbook.Application.getAddressBooks
     * @return the AddressBooks collection of open AddressBook objects
     */
    public AddressBooks getAddressBooks()
    {
        return (AddressBooks) addressBooks;
    }

    // private data
    AddressBooksimpl addressBooks;
}
