
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General
# Public License along with this library; if not, write to the
# Free Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA  02111-1307  USA


################################################################################
# METHOD:                 EXTRACTORS:
#  update,fGARCHSPEC       Update Methods
#  update,fGARCH           Update Methods
################################################################################


setMethod("update", "fGARCHSPEC", function(object, ... )
{
    # A function implemented by Yohan Chalabi

    # Description:
    #

    # Example:
    #
    #

    # FUNCTION:


    call <- object@call
    extras <- match.call(expand.dots = FALSE)$...

    if (length(extras)) {
        existing <- !is.na(match(names(extras), names(call)))
        for (a in names(extras)[existing]) call[[a]] <- extras[[a]]
        if (any(!existing)) {
            call <- c(as.list(call), extras[!existing])
            call <- as.call(call)
        }
    }

        eval(call, parent.frame())
})


# -----------------------------------------------------------------------------


setMethod("update", "fGARCH", function(object, ... )
{
    # A function implemented by Yohan Chalabi

    # Description:
    #

    # Example:
    #
    #

    # FUNCTION:


    call <- object@call
    extras <- match.call(expand.dots = FALSE)$...

    if (length(extras)) {
        existing <- !is.na(match(names(extras), names(call)))
        for (a in names(extras)[existing]) call[[a]] <- extras[[a]]
        if (any(!existing)) {
            call <- c(as.list(call), extras[!existing])
            call <- as.call(call)
        }
    }

        eval(call, parent.frame())
})
