Serializable

Qualified name: mv::util::Serializable

class Serializable

Serializable class.

Serialize objects using Qt variants.

Author

Thomas Kroes

Subclassed by mv::AbstractManager, mv::Application, mv::BiMap, mv::CoreApplication, mv::KeyBasedSelectionGroup, mv::LinkedData, mv::OrderedMap, mv::Project, mv::SelectionMap, mv::SortFilterProxyModel, mv::StandardItemModel, mv::Task, mv::Workspace, mv::gui::ColorMapEditor1DNode, mv::gui::HierarchyWidget, mv::gui::WidgetAction, mv::util::Version

Public Types

enum class State

Determines the state of the serializable object.

Values:

enumerator Idle
enumerator Reading

The serializable object is not being read or written.

enumerator Writing

The serializable object is being read.

The serializable object is being written

enum class Direction

Describes the serialization direction.

Values:

enumerator From
enumerator To

From variant map to serializable object.

From serializable object to variant map

Public Functions

Serializable(const QString &serializationName = "")

Construct with serialization name.

Parameters:

serializationName – Serialization name

inline virtual ~Serializable()

Destructor.

QString getId(bool truncated = false) const

Get globally unique identifier, possibly truncated.

Parameters:

truncated – Whether to only return the first six characters of the ID

Returns:

Globally unique identifier of the serializable object

void setId(const QString &id)

Set globally unique identifier (only use this function when strictly necessary and when the ramifications are understood, undefined behaviour might happen otherwise)

Parameters:

id – Globally unique identifier of the serializable object

QString getSerializationName() const

Get serialization name.

Returns:

Serialization name

void setSerializationName(const QString &serializationName)

Set serialization name to name.

Parameters:

serializationName – Serialization name

virtual void fromVariantMap(const QVariantMap &variantMap)

Load from variant map.

Parameters:

variantMap – Variant map

virtual void fromParentVariantMap(const QVariantMap &parentVariantMap, bool ignoreLoadingErrors = false)

Load from variant map located in parentVariantMap at the serialization name.

Parameters:
  • parentVariantMap – Parent variant map

  • ignoreLoadingErrors – Whether to ignore loading errors (default: false)

virtual QVariantMap toVariantMap() const

Save to variant map.

Returns:

Variant map

void insertIntoVariantMap(QVariantMap &variantMap) const

Save into variantMap.

Parameters:

variantMap – Variant map

void fromJsonDocument(const QJsonDocument &jsonDocument)

Load widget action from JSON document.

Parameters:

jsonDocument – The JSON document

QJsonDocument toJsonDocument() const

Save widget action to JSON document.

Returns:

JSON document

void fromJsonFile(const QString &filePath = "")

Load from JSON file.

Parameters:

filePath – Path to the JSON file

void toJsonFile(const QString &filePath = "") const

Save to JSON file.

Parameters:

filePath – Path to the JSON file

void makeUnique()

Assigns a fresh new identifier to the serializable object.

std::int32_t getSerializationCount(const Direction &direction) const

Get serialization count.

Parameters:

direction – Serialization direction

Returns:

Serialization count

std::int32_t getSerializationCountFrom() const

Get serialization count from.

Returns:

Serialization count from

std::int32_t getSerializationCountTo() const

Get serialization count to.

Returns:

Serialization count to

inline bool operator==(const Serializable &rhs) const

Equality operator.

Parameters:

rhs – Right-hand-side operator

inline bool operator!=(const Serializable &rhs) const

Inequality operator.

Parameters:

rhs – Right-hand-side operator

Public Static Functions

static QString createId()

Creates a new globally unique identifier for a serializable object.

Returns:

Globally unique identifier

Protected Static Functions

static void fromVariantMap(Serializable *serializable, const QVariantMap &variantMap)

Load serializable object from variant map.

Parameters:
  • serializable – Pointer to serializable object

  • variantMap – The Variant map

static void fromVariantMap(Serializable &serializable, const QVariantMap &variantMap, const QString &key)

Load from variant map.

Parameters:
  • serializable – Reference to serializable object

  • variantMap – Variant map

  • key – Variant map key

static QVariantMap toVariantMap(const Serializable *serializable)

Save serializable object to variant map.

Parameters:

serializable – Pointer to serializable object

Returns:

Variant map

static void insertIntoVariantMap(const Serializable &serializable, QVariantMap &variantMap, const QString &key)

Save serializable object in variantMap with key.

Parameters:
  • serializable – Reference to serializable object

  • variantMap – Variant map

  • key – Variant map key

static void insertIntoVariantMap(const Serializable &serializable, QVariantMap &variantMap)

Save serializable object in variantMap.

Parameters:
  • serializable – Reference to serializable object

  • variantMap – Variant map