29#include <sptk5/FieldList.h>
30#include <sptk5/Variant.h>
31#include <sptk5/db/QueryParameterList.h>
32#include <sptk5/threads/Locks.h>
33#include <sptk5/wsdl/WSArray.h>
34#include <sptk5/wsdl/WSBasicTypes.h>
35#include <sptk5/wsdl/WSFieldIndex.h>
36#include <sptk5/xdoc/Node.h>
59 , m_optional(optional)
97 return "WSComplexType";
119 void load(
const xdoc::SNode& input,
bool nullLargeData =
false)
override;
134 virtual void unload(
const xdoc::SNode& output)
const;
155 void exportTo(
const xdoc::SNode& parent,
const char* name =
nullptr)
const override;
215 m_fields.forEach([](
WSType* field) {
226 void setElements(
const Strings& fieldNames, std::initializer_list<WSType*> fields)
231 void setAttributes(
const Strings& fieldNames, std::initializer_list<WSType*> fields)
233 m_fields.setAttributes(fieldNames, fields);
245 bool m_optional {
false};
246 bool m_loaded {
false};
247 bool m_exportable {
true};
248 WSFieldIndex m_fields;
250 static bool loadField(
const FieldList& input,
bool nullLargeData, WSType* field);
Definition: FieldList.h:50
Definition: QueryParameterList.h:57
Definition: WSBasicTypes.h:41
Definition: WSComplexType.h:50
bool loaded() const
Definition: WSComplexType.h:196
static void unload(QueryParameterList &output, const char *paramName, const WSBasicType *elementOrAttribute)
void copyFrom(const WSComplexType &other)
void setLoaded(bool flag)
Definition: WSComplexType.h:205
WSComplexType(const char *name, bool optional=false)
Definition: WSComplexType.h:57
virtual void checkRestrictions() const
Definition: WSComplexType.h:239
WSComplexType(WSComplexType &&other) noexcept=default
void load(const xdoc::SNode &input, bool nullLargeData=false) override
virtual void load(const sptk::FieldList &input, bool nullLargeData=false)
void clear() override
Definition: WSComplexType.h:103
virtual String toString(bool asJSON=true, bool formatted=false) const
String className() const override
Definition: WSComplexType.h:95
virtual bool isOptional() const
Definition: WSComplexType.h:165
virtual void unload(QueryParameterList &output) const
virtual void _clear()
Definition: WSComplexType.h:213
virtual void unload(const xdoc::SNode &output) const
void throwIfNull(const String &parentTypeName) const
bool isNull() const override
void exportTo(const xdoc::SNode &parent, const char *name=nullptr) const override
WSComplexType & operator=(const WSComplexType &other)=default
void exportable(bool flag)
Definition: WSComplexType.h:187
WSComplexType & operator=(WSComplexType &&other) noexcept=default
~WSComplexType() override=default
WSComplexType(const WSComplexType &other)=default
Definition: WSFieldIndex.h:38
void setElements(const Strings &fieldNames, std::initializer_list< WSType * > fieldList)