Program Listing for File PersonaStatDefinition.h

Return to documentation for file (axr.sdk/models/PersonaStatDefinition.h)

// Copyright (C) AcceleratXR, Inc. All rights reserved.
//
// Author: Jean-Philippe Steinmetz <info@acceleratxr.com>
//
// NOTE: This file was auto generated by the AcceleratXR code generator.
// https://gitlab.com/AcceleratXR/Core/code_generator.git
#pragma once

#include "axr.sdk/EntityBase.h"
#include "axr.sdk/StringEnum.h"

#include <cpprest/details/basic_types.h>
#include <vector>

namespace axr {
namespace sdk {
namespace models {

class PersonaStatDefinition : public EntityBase
{
public:
    class Type : public StringEnum<Type>
    {
    public:
        static const Type* INVALID;
        static const Type* BOOLEAN;
        static const Type* NUMBER;
        static const Type* OBJECT;
        static const Type* STRING;

    private:
        Type(const utility::char_t* value)
            : StringEnum(value)
        {
        }
    };

    PersonaStatDefinition() {}
    PersonaStatDefinition(const PersonaStatDefinition& value) : EntityBase(value) {}
    PersonaStatDefinition(PersonaStatDefinition&& value) : EntityBase(value) {}
    virtual ~PersonaStatDefinition() {}

    // Object overrides

    virtual PersonaStatDefinition& SetProperties(const std::map<utility::string_t, Variant>& value) override
    {
        Object::SetProperties(value);
        return *this;
    }

    virtual PersonaStatDefinition& SetProperties(std::map<utility::string_t, Variant>&& value) override
    {
        Object::SetProperties(value);
        return *this;
    }

    virtual PersonaStatDefinition& SetProperty(const utility::char_t* name, const Variant& value) override
    {
        Object::SetProperty(name, value);
        return*this;
    }

    virtual PersonaStatDefinition& SetProperty(const utility::string_t& name, const Variant& value) override
    {
        Object::SetProperty(name, value);
        return*this;
    }

    virtual PersonaStatDefinition& SetRemoteUrl(const utility::string_t& url) override
    {
        Object::SetRemoteUrl(url);
        return *this;
    }

    // EntityBase overrides

    virtual PersonaStatDefinition& SetUid(const utility::string_t& value) override
    {
        EntityBase::SetUid(value);
        return *this;
    }

    virtual PersonaStatDefinition& SetDateCreated(const datetime& value) override
    {
        EntityBase::SetDateCreated(value);
        return *this;
    }

    virtual PersonaStatDefinition& SetDateModified(const datetime& value) override
    {
        EntityBase::SetDateModified(value);
        return *this;
    }

    virtual PersonaStatDefinition& SetVersion(const uint64_t value) override
    {
        EntityBase::SetVersion(value);
        return *this;
    }

    static const utility::char_t* ClassName()
    {
        return _XPLATSTR("axr::sdk::models::PersonaStatDefinition");
    }

    void Validate() override;

    // PersonaStatDefinition members

    utility::string_t GetName() const;

#ifdef AXR_COMPILE_SERVER
    PersonaStatDefinition& SetName(const utility::string_t& value);
#endif // AXR_COMPILE_SERVER

    const Type* GetType() const;

#ifdef AXR_COMPILE_SERVER
    PersonaStatDefinition& SetType(const Type* value);
#endif // AXR_COMPILE_SERVER

    Variant GetMin() const;

    template<class T>
    inline T GetMin() const
    {
        return std::get<T>(GetMin());
    }

#ifdef AXR_COMPILE_SERVER
    PersonaStatDefinition& SetMin(const Variant& value);
#endif // AXR_COMPILE_SERVER

    Variant GetMax() const;

    template<class T>
    inline T GetMax() const
    {
        return std::get<T>(GetMax());
    }

#ifdef AXR_COMPILE_SERVER
    PersonaStatDefinition& SetMax(const Variant& value);
#endif // AXR_COMPILE_SERVER

    Variant GetDefault() const;

    template<class T>
    inline T GetDefault() const
    {
        return std::get<T>(GetDefault());
    }

#ifdef AXR_COMPILE_SERVER
    PersonaStatDefinition& SetDefault(const Variant& value);
#endif // AXR_COMPILE_SERVER

    utility::string_t GetProductUid() const;
#ifdef AXR_COMPILE_SERVER
    PersonaStatDefinition& SetProductUid(const utility::string_t& value);
#endif // AXR_COMPILE_SERVER

    std::vector<Variant> GetValues() const;

    template<class T>
    inline std::vector<T> GetValues() const
    {
        std::vector<T> results;
        for (auto elem : GetValues())
        {
            results.push_back(std::get<T>(elem));
        }
        return results;
    }

#ifdef AXR_COMPILE_SERVER
    PersonaStatDefinition& SetValues(std::vector<Variant> values);
#endif // AXR_COMPILE_SERVER
protected:
    const Type* GetVariantType(const Variant& value);
};

template<>
inline bool PersonaStatDefinition::GetMin() const
{
    return std::get<bool>(GetMin());
}
template<>
inline double PersonaStatDefinition::GetMin() const
{
    return std::get<double>(GetMin());
}
template<>
inline float PersonaStatDefinition::GetMin() const
{
    return (float)std::get<double>(GetMin());
}
template<>
inline int8_t PersonaStatDefinition::GetMin() const
{
    return (int8_t)std::get<int64_t>(GetMin());
}
template<>
inline uint8_t PersonaStatDefinition::GetMin() const
{
    return (uint8_t)std::get<int64_t>(GetMin());
}
template<>
inline int16_t PersonaStatDefinition::GetMin() const
{
    return (int16_t)std::get<int64_t>(GetMin());
}
template<>
inline uint16_t PersonaStatDefinition::GetMin() const
{
    return (uint16_t)std::get<int64_t>(GetMin());
}
template<>
inline int32_t PersonaStatDefinition::GetMin() const
{
    return (int32_t)std::get<int64_t>(GetMin());
}
template<>
inline uint32_t PersonaStatDefinition::GetMin() const
{
    return (uint32_t)std::get<int64_t>(GetMin());
}
template<>
inline int64_t PersonaStatDefinition::GetMin() const
{
    return std::get<int64_t>(GetMin());
}
template<>
inline uint64_t PersonaStatDefinition::GetMin() const
{
    return (uint64_t)std::get<int64_t>(GetMin());
}
template<>
inline std::shared_ptr<Object> PersonaStatDefinition::GetMin() const
{
    return std::get<std::shared_ptr<Object>>(GetMin());
}
template<>
inline utility::string_t PersonaStatDefinition::GetMin() const
{
    return std::get<utility::string_t>(GetMin());
}

template<>
inline bool PersonaStatDefinition::GetMax() const
{
    return std::get<bool>(GetMax());
}
template<>
inline double PersonaStatDefinition::GetMax() const
{
    return std::get<double>(GetMax());
}
template<>
inline float PersonaStatDefinition::GetMax() const
{
    return (float)std::get<double>(GetMax());
}
template<>
inline int8_t PersonaStatDefinition::GetMax() const
{
    return (int8_t)std::get<int64_t>(GetMax());
}
template<>
inline uint8_t PersonaStatDefinition::GetMax() const
{
    return (uint8_t)std::get<int64_t>(GetMax());
}
template<>
inline int16_t PersonaStatDefinition::GetMax() const
{
    return (int16_t)std::get<int64_t>(GetMax());
}
template<>
inline uint16_t PersonaStatDefinition::GetMax() const
{
    return (uint16_t)std::get<int64_t>(GetMax());
}
template<>
inline int32_t PersonaStatDefinition::GetMax() const
{
    return (int32_t)std::get<int64_t>(GetMax());
}
template<>
inline uint32_t PersonaStatDefinition::GetMax() const
{
    return (uint32_t)std::get<int64_t>(GetMax());
}
template<>
inline int64_t PersonaStatDefinition::GetMax() const
{
    return std::get<int64_t>(GetMax());
}
template<>
inline uint64_t PersonaStatDefinition::GetMax() const
{
    return (uint64_t)std::get<int64_t>(GetMax());
}
template<>
inline std::shared_ptr<Object> PersonaStatDefinition::GetMax() const
{
    return std::get<std::shared_ptr<Object>>(GetMax());
}
template<>
inline utility::string_t PersonaStatDefinition::GetMax() const
{
    return std::get<utility::string_t>(GetMax());
}

template<>
inline bool PersonaStatDefinition::GetDefault() const
{
    return std::get<bool>(GetDefault());
}
template<>
inline double PersonaStatDefinition::GetDefault() const
{
    return std::get<double>(GetDefault());
}
template<>
inline float PersonaStatDefinition::GetDefault() const
{
    return (float)std::get<double>(GetDefault());
}
template<>
inline int8_t PersonaStatDefinition::GetDefault() const
{
    return (int8_t)std::get<int64_t>(GetDefault());
}
template<>
inline uint8_t PersonaStatDefinition::GetDefault() const
{
    return (uint8_t)std::get<int64_t>(GetDefault());
}
template<>
inline int16_t PersonaStatDefinition::GetDefault() const
{
    return (int16_t)std::get<int64_t>(GetDefault());
}
template<>
inline uint16_t PersonaStatDefinition::GetDefault() const
{
    return (uint16_t)std::get<int64_t>(GetDefault());
}
template<>
inline int32_t PersonaStatDefinition::GetDefault() const
{
    return (int32_t)std::get<int64_t>(GetDefault());
}
template<>
inline uint32_t PersonaStatDefinition::GetDefault() const
{
    return (uint32_t)std::get<int64_t>(GetDefault());
}
template<>
inline int64_t PersonaStatDefinition::GetDefault() const
{
    return std::get<int64_t>(GetDefault());
}
template<>
inline uint64_t PersonaStatDefinition::GetDefault() const
{
    return (uint64_t)std::get<int64_t>(GetDefault());
}
template<>
inline std::shared_ptr<Object> PersonaStatDefinition::GetDefault() const
{
    return std::get<std::shared_ptr<Object>>(GetDefault());
}
template<>
inline utility::string_t PersonaStatDefinition::GetDefault() const
{
    return std::get<utility::string_t>(GetDefault());
}


template<>
inline std::vector<bool> PersonaStatDefinition::GetValues() const
{
    std::vector<bool> results;
    for (auto elem : GetValues())
    {
        results.push_back(std::get<bool>(elem));
    }
    return results;
}
template<>
inline std::vector<double> PersonaStatDefinition::GetValues() const
{
    std::vector<double> results;
    for (auto elem : GetValues())
    {
        results.push_back(std::get<double>(elem));
    }
    return results;
}
template<>
inline std::vector<float> PersonaStatDefinition::GetValues() const
{
    std::vector<float> results;
    for (auto elem : GetValues())
    {
        results.push_back((float)std::get<double>(elem));
    }
    return results;
}
template<>
inline std::vector<int8_t> PersonaStatDefinition::GetValues() const
{
    std::vector<int8_t> results;
    for (auto elem : GetValues())
    {
        results.push_back((int8_t)std::get<int64_t>(elem));
    }
    return results;
}
template<>
inline std::vector<uint8_t> PersonaStatDefinition::GetValues() const
{
    std::vector<uint8_t> results;
    for (auto elem : GetValues())
    {
        results.push_back((uint8_t)std::get<int64_t>(elem));
    }
    return results;
}
template<>
inline std::vector<int16_t> PersonaStatDefinition::GetValues() const
{
    std::vector<int16_t> results;
    for (auto elem : GetValues())
    {
        results.push_back((int16_t)std::get<int64_t>(elem));
    }
    return results;
}
template<>
inline std::vector<uint16_t> PersonaStatDefinition::GetValues() const
{
    std::vector<uint16_t> results;
    for (auto elem : GetValues())
    {
        results.push_back((uint16_t)std::get<int64_t>(elem));
    }
    return results;
}
template<>
inline std::vector<int32_t> PersonaStatDefinition::GetValues() const
{
    std::vector<int32_t> results;
    for (auto elem : GetValues())
    {
        results.push_back((int32_t)std::get<int64_t>(elem));
    }
    return results;
}
template<>
inline std::vector<uint32_t> PersonaStatDefinition::GetValues() const
{
    std::vector<uint32_t> results;
    for (auto elem : GetValues())
    {
        results.push_back((uint32_t)std::get<int64_t>(elem));
    }
    return results;
}
template<>
inline std::vector<int64_t> PersonaStatDefinition::GetValues() const
{
    std::vector<int64_t> results;
    for (auto elem : GetValues())
    {
        results.push_back(std::get<int64_t>(elem));
    }
    return results;
}
template<>
inline std::vector<uint64_t> PersonaStatDefinition::GetValues() const
{
    std::vector<uint64_t> results;
    for (auto elem : GetValues())
    {
        results.push_back((uint64_t)std::get<int64_t>(elem));
    }
    return results;
}
template<>
inline std::vector<std::shared_ptr<Object>> PersonaStatDefinition::GetValues() const
{
    std::vector<std::shared_ptr<Object>> results;
    for (auto elem : GetValues())
    {
        results.push_back(std::get<std::shared_ptr<Object>>(elem));
    }
    return results;
}
template<>
inline std::vector<utility::string_t> PersonaStatDefinition::GetValues() const
{
    std::vector<utility::string_t> results;
    for (auto elem : GetValues())
    {
        results.push_back(std::get<utility::string_t>(elem));
    }
    return results;
}

} // namespace models
} // namespace axr
} // namespace sdk