All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dictionaryEntry.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
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.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 \*---------------------------------------------------------------------------*/
25 
26 #include "dictionaryEntry.H"
27 
28 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
29 
30 Foam::dictionaryEntry::dictionaryEntry
31 (
32  const keyType& key,
33  const dictionary& parentDict,
34  const dictionary& dict
35 )
36 :
37  entry(key),
38  dictionary(parentDict, dict)
39 {}
40 
41 
42 Foam::dictionaryEntry::dictionaryEntry
43 (
44  const dictionary& parentDict,
45  const dictionaryEntry& dictEnt
46 )
47 :
48  entry(dictEnt),
49  dictionary(parentDict, dictEnt)
50 {}
51 
52 
53 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
54 
56 {
57  if (size())
58  {
59  return first()->startLineNumber();
60  }
61  else
62  {
63  return -1;
64  }
65 }
66 
67 
69 {
70  if (size())
71  {
72  return last()->endLineNumber();
73  }
74  else
75  {
76  return -1;
77  }
78 }
79 
80 
82 {
84  << "Attempt to return dictionary entry as a primitive"
85  << abort(FatalIOError);
86 
87  return lookup("");
88 }
89 
90 
92 {
93  return *this;
94 }
95 
96 
98 {
99  return *this;
100 }
101 
102 
103 // ************************************************************************* //
A class for handling keywords in dictionaries.
Definition: keyType.H:66
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
A list of keyword definitions, which are a keyword followed by any number of values (e...
Definition: dictionary.H:158
ITstream & stream() const
This entry is not a primitive,.
T * last()
Return the last entry.
Definition: UILList.H:121
A keyword and a list of tokens is a &#39;dictionaryEntry&#39;.
label endLineNumber() const
Return line number of last token in dictionary.
const dictionary & dict() const
Return dictionary.
errorManip< error > abort(error &err)
Definition: errorManip.H:131
#define FatalIOErrorInFunction(ios)
Report an error message using Foam::FatalIOError.
Definition: error.H:331
label startLineNumber() const
Return line number of first token in dictionary.
T * first()
Return the first entry.
Definition: UILList.H:109
Input token stream.
Definition: ITstream.H:49
A keyword and a list of tokens is an &#39;entry&#39;.
Definition: entry.H:65
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.
Definition: dictionary.C:812
IOerror FatalIOError