def get_value(self, *args, **kwargs):
        """
        This method should be overriden by any subclass of Parameter, and should
        be decorated with the @update_if_client decorator.
        Please see the individual classes documentation:

            * :meth:`FloatParameter.get_value`
            * :meth:`ArrayParameter.get_value`
            * :meth:`HierarchyParameter.get_value`
            * :meth:`IntParameter.get_value`
            * :meth:`BoolParameter.get_value`
            * :meth:`ChoiceParameter.get_value`
            * :meth:`ConstraintParameter.get_value`
            * :meth:`HistoryParameter.get_value`

        If subclassing, this method needs to:
            * cast to the correct type/units, handling defaults

        :raises NotImplementedError: because this must be subclassed


        """
        if self.qualifier in kwargs.keys():
            # then we have an "override" value that was passed, and we should
            # just return that.
            # Example teff_param.get_value('teff', teff=6000) returns 6000
            return kwargs.get(self.qualifier)
        return None