// src/templates/parameter.tcc - Copyright 2005, 2006, University
//               of Padova, dept. of Pure and Applied
//               Mathematics
//
// This file is part of SGPEMv2.
//
// This is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// SGPEMv2 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 General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with SGPEMv2; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA


#ifndef PARAMETER_TCC
#define PARAMETER_TCC 1

#include <sgpemv2/policy_parameters.hh>

using namespace sgpem;


template<typename T>
PolicyParameters::Parameter<T>::Parameter(Glib::ustring name, const T& value, 
                                          const T& lower_bound, const T& upper_bound, 
                                          const bool& required,  const T& default_value)
    : _name(name), _value(value), _lower_bound(lower_bound), 
    _upper_bound(upper_bound), _is_required(required), _default(default_value)
{}

template<typename T>
Glib::ustring
PolicyParameters::Parameter<T>::get_name() const
{
  return _name;
}

template<typename T>
T
PolicyParameters::Parameter<T>::get_lower_bound() const
{
  return _lower_bound;
}


template<typename T>
T
PolicyParameters::Parameter<T>::get_upper_bound() const
{
  return _upper_bound;
}

template<typename T>
bool
PolicyParameters::Parameter<T>::is_required() const
{
  return _is_required;
}

template<typename T>
T
PolicyParameters::Parameter<T>::get_default() const
{
  return _default;
}

template<typename T>
T
PolicyParameters::Parameter<T>::get_value() const
{
  return _value;
}

template<typename T>
void
PolicyParameters::Parameter<T>::set_value(const T& val)
{
  _value = val;
}

#endif //~ PARAMETER_TCC
