//
// aegis - project change supervisor
// Copyright (C) 2007, 2008 Peter Miller
//
// This program 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 3 of the License, or
// (at your option) any later version.
//
// This program 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 this program. If not, see
// .
//
#include
#include
sub_functor_variable::~sub_functor_variable()
{
trace(("%s\n", __PRETTY_FUNCTION__));
}
sub_functor_variable::sub_functor_variable(const nstring &a_name,
const nstring &a_value) :
sub_functor(a_name),
value(a_value),
used(false),
append_if_unused_flag(false),
override_flag(false),
resubstitute_flag(false)
{
trace(("%s\n", __PRETTY_FUNCTION__));
}
sub_functor::pointer
sub_functor_variable::create(const nstring &a_name, const nstring &a_value)
{
trace(("%s\n", __PRETTY_FUNCTION__));
return pointer(new sub_functor_variable(a_name, a_value));
}
wstring
sub_functor_variable::evaluate(sub_context_ty *, const wstring_list &)
{
trace(("%s\n", __PRETTY_FUNCTION__));
used = true;
return value;
}
bool
sub_functor_variable::append_if_unused()
const
{
trace(("%s\n", __PRETTY_FUNCTION__));
return append_if_unused_flag;
}
void
sub_functor_variable::append_if_unused_set()
{
trace(("%s\n", __PRETTY_FUNCTION__));
append_if_unused_flag = true;
}
bool
sub_functor_variable::override()
const
{
trace(("%s\n", __PRETTY_FUNCTION__));
return override_flag;
}
void
sub_functor_variable::override_set()
{
trace(("%s\n", __PRETTY_FUNCTION__));
override_flag = true;
}
bool
sub_functor_variable::resubstitute()
const
{
trace(("%s\n", __PRETTY_FUNCTION__));
return resubstitute_flag;
}
void
sub_functor_variable::resubstitute_set()
{
trace(("%s\n", __PRETTY_FUNCTION__));
resubstitute_flag = true;
}
bool
sub_functor_variable::must_be_used()
const
{
trace(("%s\n", __PRETTY_FUNCTION__));
return !used;
}
void
sub_functor_variable::optional_set()
{
trace(("%s\n", __PRETTY_FUNCTION__));
used = true;
}