/////////////////////////////////////////////////////////////////////////////// // 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. /////////////////////////////////////////////////////////////////////////////// #ifndef _BCF_3_0_DOCUMENT_REFERENCE_H #define _BCF_3_0_DOCUMENT_REFERENCE_H #include "BcfCommon.h" #include "BcfElement.h" #include "Bcf_3_0DocumentReferenceGroup.h" /** \details Contains declarations related to working with BCF files content. */ namespace OdBcf { class OdBcfValidationContext; } /** \details Contains declarations related to working with data of the BCF format version 3.0. */ namespace OdBcf_3_0 { /** \details A class that stores and operates a document reference data. */ class BCF_3_0_EXPORT OdBcfDocumentReference : public OdBcf::OdBcfElement { public: //DOM-IGNORE-BEGIN ODRX_DECLARE_MEMBERS(OdBcfDocumentReference); //DOM-IGNORE-END /** \details Creates a new document reference object. \param documentGuid [in] A guid of the document. \param url [in] Url of the external document. \param description [in] A description of the document reference. \param documentReference [in] Unique identifier of the reference. \returns A smart pointer to the created OdBcfDocumentReference instance. */ static OdSmartPtr createObject( const OdGUID& documentGuid, const OdString& url, const OdString& description, const OdBcfDocumentReferenceGroup& documentReference); /** \details Creates a new document reference object with default parameters. */ OdBcfDocumentReference(); /** \details Reads XML data into ODA data structures. \param pParent [in] A pointer to the parent element of the data structure. \returns eOk if data is successfully read; otherwise, the method returns an appropriate error code. */ virtual OdResult inFields(TiXmlElement *pParent) ODRX_OVERRIDE; /** \details Writes data into XML structures. \param pParent [in] A pointer to the parent element of the data structure. \returns eOk if data is successfully written; otherwise, the method returns an appropriate error code. */ virtual OdResult outFields(TiXmlElement *pParent) const ODRX_OVERRIDE; /** \details Retrieves the global unique identifier (GUID) of the document. \returns An OdGUID object that contains the document's GUID. \remarks The GUID returned by the method can't be modified in the calling subroutine. */ const OdGUID& getDocumentGuid() const; /** \details Defines whether the global unique identifier (GUID) of the document is not initialized. \returns true if the GUID is not initialized; otherwise, the method returns false. */ bool isDocumentGuidUnset() const; /** \details Retrieves the documents' url. \returns A string that contains information about the documents' url. \remarks The string with information about the url returned by the method can't be modified in the calling subroutine. */ const OdString& getUrl() const; /** \details Defines whether the url of the document reference object is not initialized. \returns true if the url is not initialized; otherwise, the method returns false. */ bool isUrlUnset() const; /** \details Retrieves the description of document reference. \returns A string that contains information about the description of document reference. \remarks The string with information about the description returned by the method can't be modified in the calling subroutine. */ const OdString& getDescription() const; /** \details Defines whether the description of the document reference object is not initialized. \returns true if the description is not initialized; otherwise, the method returns false. */ bool isDescriptionUnset() const; /** \details Retrieves the document reference attributes. \returns An OdBcfDocumentReferenceGroup object that contains the document reference attributes. \remarks The document reference attribute object returned by the method can't be modified in the calling subroutine. */ const OdBcfDocumentReferenceGroup& getDocumentReferenceAttributes() const; /** \details Defines whether the document reference attributes are not initialized. \returns true if the document reference attributes are not initialized; otherwise, the method returns false. */ bool isDocumentReferenceAttributesUnset() const; //DOM-IGNORE-BEGIN protected: OdGUID m_documentGuid; OdString m_url; OdString m_description; OdBcfDocumentReferenceGroup m_documentReference; /** \details Checks whether the document reference instance has all required fields initialized. \param context [in/out] A raw pointer to the validation context to store results in. \returns true if all required fields are initialized; otherwise the method returns false. */ virtual bool validateData(OdBcf::OdBcfValidationContext *context) const ODRX_OVERRIDE; //DOM-IGNORE-END }; /** \details A data type that represents a smart pointer to an OdBcfDocumentReference object. */ typedef OdSmartPtr OdBcfDocumentReferencePtr; } //namespace OdBcf_3_0 #endif // _BCF_3_0_DOCUMENT_REFERENCE_H