7#ifndef PXR_USD_VALIDATION_USD_VALIDATION_VALIDATOR_H
8#define PXR_USD_VALIDATION_USD_VALIDATION_VALIDATOR_H
16#include "pxr/usd/usd/timeCode.h"
17#include "pxr/usdValidation/usdValidation/api.h"
19#include "pxr/usdValidation/usdValidation/fixer.h"
26PXR_NAMESPACE_OPEN_SCOPE
29using UsdValidationErrorVector = std::vector<UsdValidationError>;
91using UsdValidationValidatorMetadataVector
92 = std::vector<UsdValidationValidatorMetadata>;
105 const SdfLayerHandle &)>;
167 std::vector<UsdValidationFixer> fixers = {});
174 std::vector<UsdValidationFixer> fixers = {});
185 return std::move(_metadata);
191 const std::vector<const UsdValidationFixer *>
GetFixers()
const;
204 const TfToken &errorName)
const;
233 UsdValidationErrorVector
Validate(
const SdfLayerHandle &layer)
const;
247 const UsdStagePtr &usdStage,
281 std::vector<UsdValidationFixer> _fixers;
297 void _ValidateFixerNames()
const;
325 const std::vector<const UsdValidationValidator *> &validators);
342 return _containedValidators;
352 return std::move(_containedValidators);
364 return std::move(_metadata);
369 std::vector<const UsdValidationValidator *> _containedValidators;
372PXR_NAMESPACE_CLOSE_SCOPE
Token for efficient comparison, assignment, and hashing of known strings.
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
UsdValidationContext provides an interface for managing and running validators on USD layers,...
UsdValidationError is an entity returned by a validation task, which is associated with a UsdValidati...
A UsdValidationFixer represents a fix that can be applied to fix a specific validation error.
UsdValidationRegistry manages and provides access to UsdValidationValidator / UsdValidationValidatorS...
A class which describes the interval at which validation is to be performed.
UsdValidationValidator is a class describing a single test.
USDVALIDATION_API UsdValidationErrorVector Validate(const SdfLayerHandle &layer) const
Run validation on the given layer by executing the contained validateTaskFn and returns UsdValidation...
USDVALIDATION_API const UsdValidationFixer * GetFixerByName(const TfToken &name) const
Return an immutable fixer given its name if it exists, else return nullptr.
USDVALIDATION_API const std::vector< const UsdValidationFixer * > GetFixers() const
Return a vector of immutable fixers associated with this Validator.
USDVALIDATION_API const std::vector< const UsdValidationFixer * > GetFixersByKeywords(const TfTokenVector &keywords) const
Return a vector of immutable fixers catering to any of the given keywords.
USDVALIDATION_API const std::vector< const UsdValidationFixer * > GetFixersByErrorName(const TfToken &errorName) const
Return a vector of immutable fixers catering to a specific errorName.
USDVALIDATION_API UsdValidationValidator(const UsdValidationValidatorMetadata &metadata)
Instantiate a UsdValidationValidator which has no validation logic implementation.
USDVALIDATION_API const UsdValidationFixer * GetFixerByNameAndErrorName(const TfToken &name, const TfToken &errorName) const
Return an immutable fixer given its name and catering to a specific errorName if it exists,...
const UsdValidationValidatorMetadata & GetMetadata() const &
Return metadata associated with this Validator.
UsdValidationValidatorSuite acts like a suite for a collection of tests, which clients can use to bun...
USDVALIDATION_API UsdValidationValidatorSuite(const UsdValidationValidatorMetadata &metadata, const std::vector< const UsdValidationValidator * > &validators)
Instantiate UsdValidationValidatorSuite using metadata and a vector of validators.
const std::vector< const UsdValidationValidator * > & GetContainedValidators() const &
Returns a vector of const UsdValidationValidator pointers, which make this UsdValidationValidatorSuit...
const UsdValidationValidatorMetadata & GetMetadata() const &
Return metadata associated with this validator.
std::function< UsdValidationErrorVector( const UsdPrim &, const UsdValidationTimeRange)> UsdValidatePrimTaskFn
UsdValidatePrimTaskFn: Validation logic operating on a given UsdPrim.
std::function< UsdValidationErrorVector( const SdfLayerHandle &)> UsdValidateLayerTaskFn
UsdValidateLayerTaskFn: Validation logic operating on a given SdfLayerHandle.
std::function< UsdValidationErrorVector( const UsdStagePtr &, const UsdValidationTimeRange)> UsdValidateStageTaskFn
UsdValidateStageTaskFn: Validation logic operating on a given UsdStage.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...
std::vector< TfToken > TfTokenVector
Convenience types.
bool isTimeDependent
whether this test is time dependent or not.
PlugPluginPtr pluginPtr
Pointer to the plugin to which a plugin based validator belongs.
bool isSuite
whether this test represents a test suite or not, default is false.
TfTokenVector schemaTypes
list of schemaTypes names this test applies to, extracted from plugInfo.json
TfTokenVector keywords
list of keywords extracted for this test from the plugInfo.json
std::string doc
doc string extracted from plugInfo.json This is a mandatory field for a ValidatorMetadata.
TfToken name
Name of the validator.