OpenLexocad  27.1
PropertyGUID.h
Go to the documentation of this file.
1 #pragma once
2 #include <Base/Color.h>
3 #include <Base/Enums.h>
4 #include <Base/Exception.h>
5 #include <Base/GlobalId.h>
6 #include <Core/Property.h>
7 #include <Core/Variant.h>
8 
9 class QUuid;
10 
11 namespace Core
12 {
24 class LX_CORE_EXPORT PropertyGUID : public Core::Property
25 {
27 
28 public:
29  PropertyGUID(void);
30  virtual ~PropertyGUID(void);
31 
32 
33  void setValue(const Base::GlobalId& id); // throws Base::GuidInUseException if GUID is already in use.
34  void setValue(const QUuid& id);
36  void setValue(const Base::String& base64);
38  void setValue(const char* aGuid);
39  bool setValueFromVariant(const Core::Variant& value) override;
40 
41  void copyValue(Core::Property* p) override;
42 
44  Base::GlobalId createAndSetGUID();
45 
46  const Base::GlobalId& getValue() const;
47  Core::Variant getVariant(void) const override;
48 
49  unsigned int getData1() const;
50  unsigned short getData2() const;
51  unsigned short getData3() const;
52  void getData4(unsigned char value[8]) const;
53 
54  virtual bool createSQL(Base::AbstractWriter& writer, Base::PersistenceVersion& save_version, bool data) override;
55  virtual void save(Base::AbstractWriter& writer, Base::PersistenceVersion& save_version) override;
56  virtual void restore(Base::AbstractXMLReader& reader, Base::PersistenceVersion& version) override;
57  virtual bool isEqual(const Property*) const override;
58  virtual Core::Property* copy(void) const override;
59  virtual void paste(const Core::Property& from) override;
60 
61  void toUuid(QUuid& uuid) const;
62  Base::String toBase64String() const;
63  Base::String toString() const;
64 
65  virtual std::shared_ptr<Core::DbgInfo> getDbgInfo() const override;
66 
67 protected:
68  void check_and_save_or_throw(const Base::GlobalId& id);
70 };
71 
72 
73 
74 DECLARE_PROPERTY_FACTORY(PropertyGUID_Factory, Core::PropertyGUID);
75 
76 } // namespace Core
77 
78 
79 
80 // class LX_CORE_EXPORT PropertyGuidBase : public Core::Property
81 //{
82 // TYPESYSTEM_HEADER();
83 
84 // public:
85 // PropertyGuidBase(void);
86 // virtual ~PropertyGuidBase(void);
87 
88 // void setValue(const Base::GlobalId& id);
89 // bool setValueFromVariant(const Core::Variant &value) override;
90 // void copyValue(Core::Property* p) override;
91 // const Base::GlobalId& getValue() const;
92 // Core::Variant getVariant(void) const override;
93 
94 // virtual void save(Base::AbstractWriter & writer, Base::PersistenceVersion& save_version) override;
95 // virtual void restore(Base::AbstractXMLReader &reader, Base::PersistenceVersion& version) override;
96 // virtual bool isEqual(const Property*) const override;
97 
98 // virtual std::shared_ptr<Core::DbgInfo> getDbgInfo() const override;
99 // protected:
100 
101 // Base::GlobalId _value;
102 
103 //};
Definition: Persistence.h:14
The PropertyGUID class saves and restores GUIDs. It also handles the management of GUIDs in the Docum...
Definition: PropertyGUID.h:24
A Utf-16 (windows) or ucs4 (unix) encoded string class.
Definition: String.h:23
LX_CORE_EXPORT Version & version
Definition: Variant.h:87
Base::GlobalId _value
Definition: PropertyGUID.h:69
Definition: AbstractXMLReader.h:7
Definition: GlobalId.h:29
Definition: Base.h:12
Definition: Writer.h:16
Definition: Property.h:77
TYPESYSTEM_HEADER()
DECLARE_PROPERTY_FACTORY(PropertyAxis1_Factory, Core::PropertyAxis1)
friend class PropertyGUID
Definition: CoreDocument.h:140