Develop Biology
The language of life
Substance.cpp
Go to the documentation of this file.
1/*
2 * This file is a part of the Biology project by eons LLC.
3 * Biology (aka Develop Biology) is a framework for approaching software
4 * development from a natural sciences perspective.
5 *
6 * Copyright (C) 2021 Séon O'Shannon & eons LLC
7 *
8 * This program is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU Affero General Public License as
10 * published by the Free Software Foundation, either version 3 of the
11 * License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU Affero General Public License for more details.
17 *
18 * You should have received a copy of the GNU Affero General Public License
19 * along with this program. If not, see <https://www.gnu.org/licenses/>.
20 */
21
23
24namespace bio {
25namespace chemical {
26
28 const typename UnorderedMotif< Property >::Contents* properties,
29 const typename UnorderedMotif< State >::Contents* states
30)
31 :
32 chemical::Class< Substance >(this),
33 UnorderedMotif< Property >(properties),
34 UnorderedMotif< State >(states)
35{
36 CtorCommon();
37}
38
40{
41}
42
44{
45 Add< State >(state::Enabled());
46}
47
49{
50 Remove< State >(state::Enabled());
51}
52
54{
55 return Has< State >(state::Enabled());
56}
57
58void Substance::CtorCommon()
59{
60 Enable();
61}
62
63} //chemical namespace
64} //bio namespace
virtual void Disable()
Definition: Substance.cpp:48
Substance Substance(const typename UnorderedMotif< Property >::Contents *properties, const typename UnorderedMotif< State >::Contents *states)
Definition: Substance.cpp:27
virtual void Enable()
Definition: Substance.cpp:43
virtual bool IsEnabled() const
Definition: Substance.cpp:53
State Enabled()
Definition: Cell.h:31