/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #pragma once #include #include #include // Additional user data may be written here, marked with "///USER INCLUDES" at the beginning and "///USER END" at the end class OdIdsSimpleCardinality; typedef OdArray OdIdsSimpleCardinalityArray; ODRX_DECLARE_VALUE_TYPE(OdIdsSimpleCardinality, ODIDS_DLLEXPORT) ODRX_DECLARE_VALUE_TYPE(OdIdsSimpleCardinalityArray, ODIDS_DLLEXPORT) // Additional user data may be written here, marked with "///USER TYPEDEFS" at the beginning and "///USER END" at the end class ODIDS_DLLEXPORT OdIdsSimpleCardinality { // Additional user data may be written here, marked with "///USER CLASS START" at the beginning and "///USER END" at the end protected: xmlNode* _node = nullptr; OdAnsiString _value; // Additional user data may be written here, marked with "///USER MEMBER DECLARATIONS" at the beginning and "///USER END" at the end public: OdIdsSimpleCardinality(); ~OdIdsSimpleCardinality(); void readXml(xmlNode* node); void writeXml(xmlNode* node) const; virtual void __load(bool markAsLoaded = true); inline void __load(bool markAsLoaded = true) const { const_cast(this)->__load(markAsLoaded); } bool isLoaded() const { return _node == nullptr; } static OdIdsSimpleCardinality readFromString(const xmlChar* node); OdAnsiString writeToString() const; OdAnsiString getValue() { if(!isLoaded()) {__load();} return _value; } const OdAnsiString getValue() const { if(!isLoaded()) {__load();} return _value; } void setValue(OdAnsiString val) { if(!isLoaded()) {__load();} _value = val; } bool operator==(const OdIdsSimpleCardinality& other) const { return this->_value == other._value; } bool operator!=(const OdIdsSimpleCardinality& other) const { return this->_value != other._value; } };