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 UsdPrim &usdPrim, const UsdValidationTimeRange &timeRange={}) const
Run validation on the given usdPrim by executing the contained validateTaskFn and returns UsdValidati...
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 UsdValidationValidator(const UsdValidationValidatorMetadata &metadata, const UsdValidateStageTaskFn &validateStageTaskFn, std::vector< UsdValidationFixer > fixers={})
Instantiate a UsdValidationValidator which has its validation logic implemented by a UsdValidateStage...
UsdValidationValidatorMetadata GetMetadata() &&
Return metadata associated with this validator by-value.
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 UsdValidationValidator(const UsdValidationValidatorMetadata &metadata, const UsdValidatePrimTaskFn &validatePrimTaskFn, std::vector< UsdValidationFixer > fixers={})
Instantiate a UsdValidationValidator which has its validation logic implemented by a UsdValidatePrimT...
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.
USDVALIDATION_API UsdValidationErrorVector Validate(const UsdStagePtr &usdStage, const UsdValidationTimeRange &timeRange={}) const
Run validation on the given usdStage by executing the contained validateTaskFn and returns UsdValidat...
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.
UsdValidationValidatorMetadata GetMetadata() &&
Return metadata associated with this validator.
std::vector< const UsdValidationValidator * > GetContainedValidators() &&
Returns a vector of const UsdValidationValidator pointers, which make this UsdValidationValidatorSuit...
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
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.