/////////////////////////////////////////////////////////////////////////////// // 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_VALIDATION_H #define _BCF_VALIDATION_H #include "BcfCommon.h" #include "OdGUID.h" /** \details Contains declarations related to working with BCF files content. */ namespace OdBcf { class OdBcfValidationContext; /** \details An abstract class that provides the interface for validation of BCF data types. */ class BCF_EXPORT OdBcfValidation { public: /** \details Creates a new BCF validation object with default parameters. */ OdBcfValidation() : m_validationDisabled(false) {} /** \details Checks whether the BCF datatype instance has all required fields initialized if validation is enabled. \param context [in] A raw pointer to the validation context to store results in. \returns true if all required fields are initialized or validation is disabled; otherwise the method returns false. */ bool validate(OdBcfValidationContext *context = nullptr) const; /** \details Controls the validation for this object. \param validationDisabled [in] Disable validation flag. \remarks Set true to disable validation for all fields; set false to enable it. */ void disableValidation(bool validationDisabled); /** \details Retrieves the global unique identifier (GUID) of the object if available. \returns An OdGUID object that contains the object GUID. \remarks The GUID returned by the method can't be modified in the calling subroutine. */ virtual const OdGUID& getGuid() const; protected: bool m_validationDisabled; /** \details Checks whether the BCF datatype instance has all required fields initialized. \param context [in] 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(OdBcfValidationContext *context) const = 0; }; } //namespace OdBcf #endif // _BCF_VALIDATION_H