OpenLexocad  27.1
PropertyLinkBase.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <Core/Object_Hnd.h>
4 #include <Core/Property.h>
5 #include <Core/Variant.h>
6 
7 
8 namespace Core
9 {
10 class DbgInfo;
11 class DocObject;
12 
13 
14 
15 class LX_CORE_EXPORT PropertyLinkBase : public PropertyLinkBaseBase
16 {
18 
19 public:
20  PropertyLinkBase(void);
21  virtual ~PropertyLinkBase(void);
22 
23  virtual void setValue(Core::DocObject* o);
24  virtual bool setValueFromVariant(const Core::Variant& value) override;
25  virtual bool setKeyValue(const std::string& key, const Core::Variant& value) override;
26  virtual std::map<std::string, Core::Variant> getKeyValueMap() const override;
27 
28  Core::DocObject* getValue() const;
29  virtual Core::Variant getVariant(void) const override;
30 
32  virtual void copyValue(Core::Property* p) override;
33  virtual void deepCopy(Core::Property* p, Core::CoreDocument* dest_doc, DocObjectMap& copyMap) override;
34 
35  virtual bool createSQL(Base::AbstractWriter& writer, Base::PersistenceVersion& save_version, bool data) override;
36  virtual void save(Base::AbstractWriter& writer, Base::PersistenceVersion& save_version) override;
37  virtual inline void restore(Base::AbstractXMLReader& reader, Base::PersistenceVersion& version) override;
38  virtual const Core::PropertyKind getPropertyKind(void) const override;
39  virtual bool isEqual(const Property*) const override;
40  virtual bool isLink() const override { return true; }
41  virtual std::shared_ptr<Core::DbgInfo> getDbgInfo() const override;
42  virtual Core::Property* copy(void) const override;
43  virtual void paste(const Core::Property& from) override;
44 
45  // Tries to resolve the link from the object handle. Returns 'true' if successful, 'false' if it failed
46  bool resolveLink();
47 
48  virtual bool removeLink(DocObject*) override { return true; }
49 
50 protected:
52 };
53 } // namespace Core
Definition: Persistence.h:14
LX_CORE_EXPORT Version & version
Definition: CoreDocument.h:210
Definition: Variant.h:87
Definition: AbstractXMLReader.h:7
PropertyKind
Definition: Property.h:50
Definition: Base.h:12
Definition: Writer.h:16
Definition: Object_Hnd.h:8
Definition: Property.h:77
std::map< Core::DocObject *, Core::DocObject * > DocObjectMap
Definition: DocObject.h:10
TYPESYSTEM_HEADER()
Definition: DocObject.h:51