58        DiscreteProperty(RESQML2_NS::AbstractRepresentation* rep, 
const std::string& guid, 
const std::string& title,
 
   59            unsigned int dimension, gsoap_eml2_3::eml23__IndexableElement attachmentKind, EML2_NS::PropertyKind* propKind);
 
   71        DLL_IMPORT_OR_EXPORT std::string 
pushBackRefToExistingIntegerDataset(EML2_NS::AbstractHdfProxy* proxy, 
const std::string & datasetName, int64_t nullValue, int64_t minimumValue, int64_t maximumValue) 
final;
 
   72        using AbstractValuesProperty::pushBackRefToExistingIntegerDataset;
 
   74        DLL_IMPORT_OR_EXPORT int64_t 
getNullValue(uint64_t patchIndex = (std::numeric_limits<uint64_t>::max)()) const final;
 
   84        DLL_IMPORT_OR_EXPORT 
void setMinimumValue(int64_t value, uint64_t index = 0) const final;
 
   86        DLL_IMPORT_OR_EXPORT 
void setMaximumValue(int64_t value, uint64_t index = 0) const final;
 
   92        DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<int8_t> getInt8Statistics(uint64_t patchIndex) 
const final { 
return getStats<int8_t>(patchIndex); }
 
   93        DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<uint8_t> getUInt8Statistics(uint64_t patchIndex) 
const final { 
return getStats<uint8_t>(patchIndex); }
 
   94        DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<int16_t> getInt16Statistics(uint64_t patchIndex) 
const final { 
return getStats<int16_t>(patchIndex); }
 
   95        DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<uint16_t> getUInt16Statistics(uint64_t patchIndex) 
const final { 
return getStats<uint16_t>(patchIndex); }
 
   96        DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<int32_t> getInt32Statistics(uint64_t patchIndex) 
const final { 
return getStats<int32_t>(patchIndex); }
 
   97        DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<uint32_t> getUInt32Statistics(uint64_t patchIndex) 
const final { 
return getStats<uint32_t>(patchIndex); }
 
   98        DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<int64_t> getInt64Statistics(uint64_t patchIndex) 
const final { 
return getStats<int64_t>(patchIndex); }
 
   99        DLL_IMPORT_OR_EXPORT COMMON_NS::NumberArrayStatistics<uint64_t> getUInt64Statistics(uint64_t patchIndex) 
const final { 
return getStats<uint64_t>(patchIndex); }
 
  104        DLL_IMPORT_OR_EXPORT 
static const char* 
XML_NS;
 
  113        size_t getMinimumValueSize() 
const;
 
  114        size_t getMaximumValueSize() 
const;
 
  117        COMMON_NS::NumberArrayStatistics<T> getStats(uint64_t patchIndex)
 const {
 
  118            auto nullValue = getNullValueOfPatch(patchIndex);
 
  119            if constexpr (std::is_signed_v<T>) {
 
  120                if (nullValue > (std::numeric_limits<T>::max)() || nullValue < (std::numeric_limits<T>::min)()) {
 
  121                    nullValue = (std::numeric_limits<T>::max)();
 
  125                if (nullValue > 0 || 
static_cast<uint64_t
>(nullValue) < (std::numeric_limits<T>::min)()) {
 
  126                    nullValue = (std::numeric_limits<T>::max)();
 
  129            COMMON_NS::NumberArrayStatistics<T> result;
 
  130            result.setNullValue(
static_cast<T
>(nullValue));
 
  132            const auto* valuesforPatch = 
static_cast<gsoap_eml2_3::_resqml22__DiscreteProperty*
>(gsoapProxy2_3)->ValuesForPatch.at(patchIndex);
 
  133            auto const* intArray = 
dynamic_cast<gsoap_eml2_3::eml23__AbstractIntegerArray const*
>(valuesforPatch);
 
  134            if (intArray == 
nullptr) 
return result;
 
  136            for (
size_t i = 0; i < intArray->Statistics.size(); ++i) {
 
  137                auto const* stats = intArray->Statistics[i];
 
  138                if (stats->MaximumValue) {
 
  139                    if constexpr (std::is_signed_v<T>) {
 
  140                        if (*stats->MaximumValue > (std::numeric_limits<T>::min)() &&
 
  141                            *stats->MaximumValue < (std::numeric_limits<T>::max)()) {
 
  142                            result.setMaximum(
static_cast<T
>(*stats->MaximumValue), i);
 
  146                        if (*stats->MaximumValue > 0 &&
 
  147                            static_cast<uint64_t
>(*stats->MaximumValue) < (std::numeric_limits<T>::max)()) {
 
  148                            result.setMaximum(
static_cast<T
>(*stats->MaximumValue), i);
 
  152                if (stats->MinimumValue) {
 
  153                    if constexpr (std::is_signed_v<T>) {
 
  154                        if (*stats->MinimumValue > (std::numeric_limits<T>::min)() &&
 
  155                            *stats->MinimumValue < (std::numeric_limits<T>::max)()) {
 
  156                            result.setMinimum(
static_cast<T
>(*stats->MinimumValue), i);
 
  160                        if (*stats->MinimumValue > 0 &&
 
  161                            static_cast<uint64_t
>(*stats->MinimumValue) < (std::numeric_limits<T>::max)()) {
 
  162                            result.setMinimum(
static_cast<T
>(*stats->MinimumValue), i);
 
  166                if (stats->ModePercentage) {
 
  167                    result.setModePercentage(*stats->ModePercentage, i);
 
  169                if (stats->ValidValueCount) {
 
  170                    result.setValidValueCount(*stats->ValidValueCount, i);
 
  172                if (stats->ValuesMedian) {
 
  173                    result.setMedian(*stats->ValuesMedian, i);
 
  175                if (stats->ValuesMode) {
 
  176                    if constexpr (std::is_signed_v<T>) {
 
  177                        if (*stats->ValuesMode > (std::numeric_limits<T>::min)() &&
 
  178                            *stats->ValuesMode < (std::numeric_limits<T>::max)()) {
 
  179                            result.setMode(
static_cast<T
>(*stats->ValuesMode), i);
 
  183                        if (*stats->ValuesMode > 0 &&
 
  184                            static_cast<uint64_t
>(*stats->ValuesMode) < (std::numeric_limits<T>::max)()) {
 
  185                            result.setMode(
static_cast<T
>(*stats->ValuesMode), i);