/////////////////////////////////////////////////////////////////////////////// // 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 OdIdsIdsValue; typedef OdSmartPtr OdIdsIdsValuePtr; typedef OdArray OdIdsIdsValuePtrArray; ODRX_DECLARE_VALUE_TYPE(OdIdsIdsValuePtrArray, 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 OdIdsIdsValue : public OdRxObject { // 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 _documentationString; public: enum ChoiceTypeSelector { NONE, SIMPLEVALUE, RESTRICTION, }; private: OdRxValue _value; ChoiceTypeSelector _choiceTypeSelector; // Additional user data may be written here, marked with "///USER MEMBER DECLARATIONS" at the beginning and "///USER END" at the end public: ODRX_DECLARE_MEMBERS(OdIdsIdsValue); OdIdsIdsValue(); ~OdIdsIdsValue(); 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; } OdAnsiString getXmlDocumentationString(){ if (!isLoaded()) { __load(); } return _documentationString; } void setXmlDocumentationString(OdAnsiString s) { if (!isLoaded()) { __load(); } _documentationString = s; } ChoiceTypeSelector getChoiceType() { if(!isLoaded()) {__load();} return _choiceTypeSelector; } OdRxValue getRawvalue() { if(!isLoaded()) {__load();} return _value; } OdAnsiString* getSimpleValue() { if(!isLoaded()) {__load();} return rxvalue_cast(&_value); } const OdAnsiString* getSimpleValue() const { if(!isLoaded()) {__load();} return rxvalue_cast(&_value); } void setSimpleValue(OdAnsiString val) { if(!isLoaded()) {__load();} _value = val; _choiceTypeSelector = SIMPLEVALUE; } OdXmlRestriction* getRestriction() { if(!isLoaded()) {__load();} return rxvalue_cast(&_value); } const OdXmlRestriction* getRestriction() const { if(!isLoaded()) {__load();} return rxvalue_cast(&_value); } void setRestriction(OdXmlRestriction val) { if(!isLoaded()) {__load();} _value = val; _choiceTypeSelector = RESTRICTION; } };