20 #ifndef LIBREPCB_SERIALIZABLEOBJECT_H 21 #define LIBREPCB_SERIALIZABLEOBJECT_H 88 const QString& itemName) {
89 for (
const auto&
object : container) {
97 const QString& itemName) {
98 for (
const auto& pointer : container) {
99 root.
appendChild(pointer->serializeToDomElement(itemName),
104 template <
typename T>
107 const QString& itemName) {
110 copy.begin(), copy.end(),
111 [](
const typename T::value_type& a,
const typename T::value_type& b) {
112 return a->getUuid() < b->getUuid();
122 "SerializableObject must not contain any data!");
130 #endif // LIBREPCB_SERIALIZABLEOBJECT_H static void serializePointerContainer(SExpression &root, const T &container, const QString &itemName)
Definition: serializableobject.h:96
SExpression & appendChild(const SExpression &child, bool linebreak)
Definition: sexpression.cpp:148
Definition: airwiresbuilder.cpp:32
virtual void serialize(SExpression &root) const =0
Serialize the object into an existing S-Expression node.
static void serializePointerContainerUuidSorted(SExpression &root, const T &container, const QString &itemName)
Definition: serializableobject.h:105
static SExpression createList(const QString &name)
Definition: sexpression.cpp:286
The SerializableObject class is the base class for all classes which need to be serializable/deserial...
Definition: serializableobject.h:43
static void serializeObjectContainer(SExpression &root, const T &container, const QString &itemName)
Definition: serializableobject.h:87
SerializableObject() noexcept
Definition: serializableobject.h:45
virtual ~SerializableObject() noexcept
Definition: serializableobject.h:46
SExpression serializeToDomElement(const QString &name) const
Serialize the object to a new S-Expression node.
Definition: serializableobject.h:63
The SExpression class.
Definition: sexpression.h:72