34#include "FGPropertyValue.h"
44FGPropertyValue::FGPropertyValue(
const std::string& propName,
45 std::shared_ptr<FGPropertyManager> propertyManager, Element* el)
46 : PropertyManager(propertyManager), PropertyNode(nullptr), XML_def(el),
47 PropertyName(propName), Sign(1.0)
49 if (PropertyName[0] ==
'-') {
50 PropertyName.erase(0,1);
54 if (PropertyManager->HasNode(PropertyName)) {
55 PropertyNode = PropertyManager->GetNode(PropertyName);
64FGPropertyNode* FGPropertyValue::GetNode(
void)
const
66 if (PropertyNode)
return PropertyNode;
69 PropertyNode = PropertyManager->GetNode(PropertyName);
72 cerr << XML_def->ReadFrom()
73 <<
"Property " << PropertyName <<
" does not exist" << endl;
74 throw BaseException(
"FGPropertyValue::GetValue() The property " +
75 PropertyName +
" does not exist.");
85double FGPropertyValue::GetValue(
void)
const
87 return GetNode()->getDoubleValue()*Sign;
92void FGPropertyValue::SetValue(
double value)
97 GetNode()->setDoubleValue(value);
102std::string FGPropertyValue::GetName(
void)
const
105 return PropertyNode->GetName();
112std::string FGPropertyValue::GetNameWithSign(
void)
const
116 if (Sign < 0.0) name =
"-";
125std::string FGPropertyValue::GetFullyQualifiedName(
void)
const
128 return PropertyNode->GetFullyQualifiedName();
135std::string FGPropertyValue::GetPrintableName(
void)
const
138 return PropertyNode->GetPrintableName();