visitor.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #include <jvalidate/forward.h>
  3. namespace jvalidate::constraint {
  4. struct ConstraintVisitor {
  5. virtual ~ConstraintVisitor() = default;
  6. virtual Status visit(ExtensionConstraint const &) const = 0;
  7. virtual Status visit(TypeConstraint const &) const = 0;
  8. virtual Status visit(EnumConstraint const &) const = 0;
  9. virtual Status visit(AllOfConstraint const &) const = 0;
  10. virtual Status visit(AnyOfConstraint const &) const = 0;
  11. virtual Status visit(OneOfConstraint const &) const = 0;
  12. virtual Status visit(NotConstraint const &) const = 0;
  13. virtual Status visit(ConditionalConstraint const &) const = 0;
  14. virtual Status visit(MaximumConstraint const &) const = 0;
  15. virtual Status visit(MinimumConstraint const &) const = 0;
  16. virtual Status visit(MultipleOfConstraint const &) const = 0;
  17. virtual Status visit(MaxLengthConstraint const &) const = 0;
  18. virtual Status visit(MinLengthConstraint const &) const = 0;
  19. virtual Status visit(PatternConstraint const &) const = 0;
  20. virtual Status visit(FormatConstraint const &) const = 0;
  21. virtual Status visit(AdditionalItemsConstraint const &) const = 0;
  22. virtual Status visit(ContainsConstraint const &) const = 0;
  23. virtual Status visit(MaxItemsConstraint const &) const = 0;
  24. virtual Status visit(MinItemsConstraint const &) const = 0;
  25. virtual Status visit(TupleConstraint const &) const = 0;
  26. virtual Status visit(UniqueItemsConstraint const &) const = 0;
  27. virtual Status visit(AdditionalPropertiesConstraint const &) const = 0;
  28. virtual Status visit(DependenciesConstraint const &) const = 0;
  29. virtual Status visit(MaxPropertiesConstraint const &) const = 0;
  30. virtual Status visit(MinPropertiesConstraint const &) const = 0;
  31. virtual Status visit(PatternPropertiesConstraint const &) const = 0;
  32. virtual Status visit(PropertiesConstraint const &) const = 0;
  33. virtual Status visit(PropertyNamesConstraint const &) const = 0;
  34. virtual Status visit(RequiredConstraint const &) const = 0;
  35. virtual Status visit(UnevaluatedItemsConstraint const &) const = 0;
  36. virtual Status visit(UnevaluatedPropertiesConstraint const &) const = 0;
  37. };
  38. template <typename Cons> struct ExtensionConstraintVisitor {
  39. virtual Status visit(Cons const &) const = 0;
  40. };
  41. }