/////////////////////////////////////////////////////////////////////////////// // 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. /////////////////////////////////////////////////////////////////////////////// #if !defined(ODA_ODMVDXMLREQUIREMENT_H_INCLUDED_) #define ODA_ODMVDXMLREQUIREMENT_H_INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "MvdXmlElement.h" /** \details Contains declarations related to Model View Definition (MVD) functionality. */ namespace OdMvdXml { /** \details A class that implements a Requirement element. The Requirement element is a usage definition for a specific entity enhanced with specific rules to be kept. */ class MVDXML_EXPORT OdMvdXmlRequirement : public OdMvdXmlElement { ODRX_DECLARE_MEMBERS(OdMvdXmlRequirement); public: /** \details Requires the unique identifier for the Requirement element. \returns An OdGUID object that represents the Requirement element's unique identifier. */ const OdGUID& getExchangeRequirement() const; /** \details Retrieves the exchange requirement of the Requirement element. \returns An OdMvdRequirement object. */ const OdMvdRequirement& getRequirement() const; /** \details Retrieves the applicability for the Requirement element. \returns An OdMvdApplicability object. */ const OdMvdApplicability& getApplicability() const; protected: /** \details Retrieves the name of the element. This name is used to write the element to a file. \returns The name of the element. */ virtual OdAnsiString getElementName(); /** \details Reads attributes from a xml element. \param pItem [in] Pointer to a xml element containing attributes. \returns eOk if the data was successfully read; otherwise, the method returns an appropriate error code. */ virtual OdResult inAttributes(TiXmlElement* pParent) override; /** \details Writing attributes to the xml element. \param pItem [in] Pointer to the xml element to which you want to add attributes. \returns eOk if the data was written successfully; otherwise, the method returns an appropriate error code. */ virtual OdResult outAttributes(TiXmlElement* pItem) override; private: /** \details Identifies the ExchangeRequirement by GUID within the same Model View Definition. */ OdGUID m_exchangeRequirement; /** \details Describes the interpretation of the result of the outermost TemplateRule specific for one exchange requirements. - mandatory : must be true, otherwise create an error - recommended : should be true, otherwise create a warning - not-relevant : no requirement; - not-recommended: should not be true, otherwise create a warning - excluded : must not be true, otherwise create an error */ OdMvdRequirement m_requirement; /** \details Identifies if the requirement applies to - import - export - both NOTE If such value is provided, then it must match, if given, with the applicability setting of the exchange requirement in which it is used. */ OdMvdApplicability m_applicability; }; SMARTPTR(OdMvdXmlRequirement); } #endif // !defined(ODA_ODMVDXMLREQUIREMENT_H_INCLUDED_)