public final LatticeIF getImplementation(final LatticeType type)
    {
        switch(type)
        {
            case SHORT_RATE:
            {
                this.implementation = new ShortRateLatticeImpl();
                break;
            }

            case ZERO_COUPON_BOND:
            {
                this.implementation = new ZeroCouponBondLatticeImpl();
                break;
            }

            case AMER_CALL_ZERO:
            {
                this.implementation = new AmericanCallZeroLatticeImpl();
                break;
            }

            case BOND_FORWARD:
            {
                this.implementation = new BondForwardImpl();
                break;
            }

            case BOND_FUTURES:
            {
                this.implementation = new BondFuturesImpl();
                break;
            }

            case SWAP:
            {
                this.implementation = new SwapImpl();
                break;
            }

            case SWAPTION:
            {
                this.implementation = new SwaptionImpl();
                break;
            }

            default:
            {
                System.err.println("No approriate implementation.");
                break;
            }

        } // switch ( searchType )

        return this.implementation;
    }