WSF
WsfParseTypeLoadRule.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11// ****************************************************************************
12// Updated by Infoscitex, a DCS Company.
13// ****************************************************************************
14
15#ifndef WSFPARSETYPELOADRULE_HPP
16#define WSFPARSETYPELOADRULE_HPP
17
18#include "UtTextDocument.hpp"
19#include "WsfParseNode.hpp"
20#include "WsfParseRule.hpp"
21#include "WsfParseType.hpp"
23class WsfParseIndex;
24
26{
27public:
29
30 WsfParseTypeLoadRule(WsfParseRuleMemory& aMem, Operation aOperation, bool aAllowReplace = false);
31
32 bool Read(WsfParser& aParser, WsfParseNode*& aNode) override;
33
34 void Undo(WsfParser& aParser) override;
35 void Resolve(WsfParser& aParser, WsfParseNode* aNodePtr) override;
36
37 Operation GetOperation() const { return mOperation; }
38 const WsfParseTypeName& GetSaveType() const { return mSaveType; }
39 const WsfParseTypeName& GetLoadType() const { return mLoadType; }
41
43 WsfParser& aParser,
44 WsfParseIndex& aIndex,
45 const WsfParseTypeName& aKey,
46 UtTextDocumentRange& aInputRange);
47
51
52protected:
53 UtStringRef GenerateName(WsfParser& aParser, bool aIsConflict);
54 WsfParseType* FindLoadType(WsfParser& aParser, WsfParseIndex& aIndex, const WsfParseTypePath& aKey, bool aNested);
55
56 WsfParseTypeInfoData* CreateAuxData(const WsfParseTypePath* aSaveType, const WsfParseTypePath* aLoadType);
57 void SaveTypeToNode(WsfParseType* aTypePtr, WsfParseNode* aNode);
58 UtStringRef GetLoadType(WsfParser& aParser, const WsfParseTypeName& aLoadType);
59 UtStringRef GetSaveType(WsfParser& aParser);
60
62
63public:
66
67private:
68 bool mPushedType;
69 bool mPushedNestedType;
70 UtTextDocumentRange mNameRange;
71 UtTextDocumentRange mTypeRange;
72};
73
74#endif
std::vector< UtStringRef > WsfParseTypePath
Definition WsfParseTypePath.hpp:21
Definition WsfParseIndex.hpp:40
Definition WsfParseNode.hpp:61
Definition WsfParseRule.hpp:263
WsfParseRule(WsfParseRuleMemory &aMem, RuleType aType)
Definition WsfParseRule.cpp:85
Definition WsfParseTypeInfoData.hpp:25
Operation
Definition WsfParseTypeInfoData.hpp:28
void SaveTypeToNode(WsfParseType *aTypePtr, WsfParseNode *aNode)
Definition WsfParseTypeLoadRule.cpp:389
WsfParseTypeName mLoadType
Definition WsfParseTypeLoadRule.hpp:49
bool CreateTypePath(WsfParseTypePath &aPath, WsfParser &aParser, WsfParseIndex &aIndex, const WsfParseTypeName &aKey, UtTextDocumentRange &aInputRange)
Definition WsfParseTypeLoadRule.cpp:36
void Resolve(WsfParser &aParser, WsfParseNode *aNodePtr) override
Definition WsfParseTypeLoadRule.cpp:299
UtStringRef GenerateName(WsfParser &aParser, bool aIsConflict)
Definition WsfParseTypeLoadRule.cpp:366
const WsfParseTypeName & GetLoadType() const
Definition WsfParseTypeLoadRule.hpp:39
const WsfParseTypeName & GetSaveType() const
Definition WsfParseTypeLoadRule.hpp:38
UtStringRef GetLoadType(WsfParser &aParser, const WsfParseTypeName &aLoadType)
const WsfParseTypePath & GetBackupType() const
Definition WsfParseTypeLoadRule.hpp:40
WsfParseTypeInfoData * CreateAuxData(const WsfParseTypePath *aSaveType, const WsfParseTypePath *aLoadType)
Definition WsfParseTypeLoadRule.cpp:394
WsfParseTypeInfoData::Operation Operation
Definition WsfParseTypeLoadRule.hpp:28
bool mGenerateNameInConflict
Definition WsfParseTypeLoadRule.hpp:65
bool mAllowRedefinition
Definition WsfParseTypeLoadRule.hpp:64
Operation GetOperation() const
Definition WsfParseTypeLoadRule.hpp:37
WsfParseTypeLoadRule(WsfParseRuleMemory &aMem, Operation aOperation, bool aAllowReplace=false)
Definition WsfParseTypeLoadRule.cpp:23
void Undo(WsfParser &aParser) override
Definition WsfParseTypeLoadRule.cpp:350
UtStringRef GetSaveType(WsfParser &aParser)
Operation mOperation
Definition WsfParseTypeLoadRule.hpp:61
bool Read(WsfParser &aParser, WsfParseNode *&aNode) override
Definition WsfParseTypeLoadRule.cpp:111
WsfParseTypeName mSaveType
Definition WsfParseTypeLoadRule.hpp:48
WsfParseType * FindLoadType(WsfParser &aParser, WsfParseIndex &aIndex, const WsfParseTypePath &aKey, bool aNested)
Definition WsfParseTypeLoadRule.cpp:76
WsfParseTypePath mBackupLoadType
Definition WsfParseTypeLoadRule.hpp:50
Definition WsfParseType.hpp:139
Definition WsfParseType.hpp:40
Definition WsfParser.hpp:36
Copyrights Multiple, All Rights Reserved