OpenLexocad  27.0
PropertySolverElementLinkVector.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <Core/DbgInfo.h>
4 #include <Core/DocObject.h>
5 #include <Core/Object_Hnd.h>
6 #include <Core/Property.h>
7 #include <Core/Variant.h>
8 #include <Core/core_defines2.h>
9 
10 
11 namespace Core
12 {
14 {
16 
17 public:
20 
21  virtual void setValue(const std::vector<Core::DocObject*>& list);
22  virtual bool setValueFromVariant(const Core::Variant&);
23  virtual void copyValue(Core::Property* p);
24 
25  virtual void addLink(Core::DocObject* o);
26  virtual void removeLink(Core::DocObject* o);
27  virtual bool hasLink(Core::DocObject* o) const;
28  virtual void setEmpty();
29  bool isEmpty() const;
30  size_t getSize() const;
31 
32  const std::vector<Core::DocObject*>& getValue() const;
33 
34  Core::Variant getVariant(void) const;
35 
36  virtual void save(Base::AbstractWriter& writer, Base::PersistanceVersion& save_version);
37  inline virtual void restore(Base::AbstractXMLReader& reader, Base::PersistanceVersion& version);
38  virtual const Core::PropertyKind getPropertyKind(void) const;
39  virtual bool isEqual(const Property*) const;
40  virtual bool isLink() const { return true; }
41  virtual std::shared_ptr<Core::DbgInfo> getDbgInfo() const override;
42 
43 protected:
44  std::vector<Core::DocObject*> _linkList;
45 };
46 
47 DECLARE_PROPERTY_FACTORY(PropertySolverElementLinkList_Factory, Core::PropertySolverElementLinkVector);
48 
49 } // namespace Core
#define CORE_EXPORT
Definition: core_defines2.h:10
Definition: Persistance.h:20
LX_CORE_EXPORT Version & version
Definition: Variant.h:90
Definition: AbstractXMLReader.h:10
PropertyKind
Definition: Property.h:54
Definition: Base.h:19
Definition: Writer.h:27
Definition: Property.h:81
TYPESYSTEM_HEADER()
DECLARE_PROPERTY_FACTORY(PropertyAxis1_Factory, Core::PropertyAxis1)
Definition: DocObject.h:28