initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / OpenFOAM / db / dictionary / functionEntries / inputModeEntry / inputModeEntry.C
blob986780fdeeef4d1cfb216c9e39e7c800c6a8935f
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software; you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 \*---------------------------------------------------------------------------*/
27 #include "inputModeEntry.H"
28 #include "dictionary.H"
29 #include "addToMemberFunctionSelectionTable.H"
31 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
33 const Foam::word Foam::functionEntries::inputModeEntry::typeName
35     Foam::functionEntries::inputModeEntry::typeName_()
38 // Don't lookup the debug switch here as the debug switch dictionary
39 // might include inputModeEntries
40 int Foam::functionEntries::inputModeEntry::debug(0);
42 Foam::functionEntries::inputModeEntry::inputMode
43     Foam::functionEntries::inputModeEntry::mode_(MERGE);
45 namespace Foam
47 namespace functionEntries
49     addToMemberFunctionSelectionTable
50     (
51         functionEntry,
52         inputModeEntry,
53         execute,
54         dictionaryIstream
55     );
59 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
61 // we could combine this into execute() directly, but leave it here for now
62 void Foam::functionEntries::inputModeEntry::setMode(Istream& is)
64     clear();
66     word mode(is);
67     if (mode == "merge" || mode == "default")
68     {
69         mode_ = MERGE;
70     }
71     else if (mode == "overwrite")
72     {
73         mode_ = OVERWRITE;
74     }
75     else if (mode == "protect")
76     {
77         mode_ = PROTECT;
78     }
79     else if (mode == "warn")
80     {
81         mode_ = WARN;
82     }
83     else if (mode == "error")
84     {
85         mode_ = ERROR;
86     }
87     else
88     {
89         WarningIn("Foam::functionEntries::inputModeEntry::setMode(Istream&)")
90             << "unsupported input mode '" << mode
91             << "' ... defaulting to 'merge'"
92             << endl;
93     }
97 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
99 bool Foam::functionEntries::inputModeEntry::execute
101     dictionary& parentDict,
102     Istream& is
105     setMode(is);
106     return true;
110 void Foam::functionEntries::inputModeEntry::clear()
112     mode_ = MERGE;
116 bool Foam::functionEntries::inputModeEntry::merge()
118     return mode_ == MERGE;
122 bool Foam::functionEntries::inputModeEntry::overwrite()
124     return mode_ == OVERWRITE;
128 bool Foam::functionEntries::inputModeEntry::protect()
130     return mode_ == PROTECT;
133 bool Foam::functionEntries::inputModeEntry::error()
135     return mode_ == ERROR;
139 // ************************************************************************* //