Class: Chemicalml::Convention::Constraint::NodeConstraint

Inherits:
Constraint
  • Object
show all
Defined in:
lib/chemicalml/convention/constraint.rb

Overview

NodeConstraint: walks the document tree once per node and calls check_node(node, path). Subclasses get traversal for free plus declarative role dispatch via applies_to.

Direct Known Subclasses

Chemicalml::Convention::Compchem::Constraints::ArrayRules, Chemicalml::Convention::Compchem::Constraints::CalculationRequiresFinalization, Chemicalml::Convention::Compchem::Constraints::CompchemModuleMustContainJobList, Chemicalml::Convention::Compchem::Constraints::EnvironmentAtMostOnePropertyList, Chemicalml::Convention::Compchem::Constraints::EnvironmentMustNotContainParameter, Chemicalml::Convention::Compchem::Constraints::FinalizationAtMostOneMolecule, Chemicalml::Convention::Compchem::Constraints::FinalizationAtMostOnePropertyList, Chemicalml::Convention::Compchem::Constraints::FinalizationMustNotContainParameter, Chemicalml::Convention::Compchem::Constraints::InitializationAtMostOneMolecule, Chemicalml::Convention::Compchem::Constraints::InitializationAtMostOneParameterList, Chemicalml::Convention::Compchem::Constraints::InitializationMustNotContainProperty, Chemicalml::Convention::Compchem::Constraints::JobListModuleMustHaveId, Chemicalml::Convention::Compchem::Constraints::JobModuleAtMostOneEnvironment, Chemicalml::Convention::Compchem::Constraints::JobModuleAtMostOneFinalization, Chemicalml::Convention::Compchem::Constraints::JobModuleMustHaveId, Chemicalml::Convention::Compchem::Constraints::JobMustContainInitialization, Chemicalml::Convention::Compchem::Constraints::MatrixRules, Chemicalml::Convention::Compchem::Constraints::ScalarUnits, Dictionary::Constraints::DictionaryMustHaveNamespace, Dictionary::Constraints::DictionaryNamespaceShouldEndWithSlashOrHash, Dictionary::Constraints::EntryIdMustMatchPattern, Dictionary::Constraints::EntryIdsUniqueWithinDictionary, Dictionary::Constraints::EntryMustContainDefinition, Dictionary::Constraints::EntryMustHaveIdAndTerm, Dictionary::Constraints::EntryMustHaveUnitType, Dictionary::Constraints::EntryUnitsCoConstraints, Molecular::Constraints::AtomArrayMustBeChildOfMoleculeOrFormula, Molecular::Constraints::AtomArrayMustContainAtoms, Molecular::Constraints::AtomCoordinatesMustBePaired, Molecular::Constraints::AtomIdMustMatchPattern, Molecular::Constraints::AtomMustHaveElementType, Molecular::Constraints::AtomMustHaveId, Molecular::Constraints::BondArrayMustBeChildOfMolecule, Molecular::Constraints::BondMustHaveAtomRefs2, Molecular::Constraints::BondMustHaveOrder, Molecular::Constraints::BondOrderOtherMustHaveDictRef, Molecular::Constraints::BondOrderShouldNotBeNumeric, Molecular::Constraints::BondStereoCisTransMustHaveAtomRefs4, Molecular::Constraints::BondStereoOtherMustHaveDictRef, Molecular::Constraints::BondStereoWedgeHashMustHaveAtomRefs2, Molecular::Constraints::MoleculeAtomArrayMutuallyExclusiveWithChildren, Molecular::Constraints::MoleculeBondArrayMutuallyExclusiveWithChildren, Molecular::Constraints::MoleculeMustHaveId, Molecular::Constraints::PropertyMustHaveDictRef, Molecular::Constraints::ScalarMustHaveDataType, UnitDictionary::Constraints::UnitListMustContainAtLeastOneUnit, UnitDictionary::Constraints::UnitListMustHaveNamespace, UnitDictionary::Constraints::UnitMustContainDefinition, UnitDictionary::Constraints::UnitMustHaveId, UnitDictionary::Constraints::UnitMustHaveSymbolAndUnitType, UnitTypeDictionary::Constraints::UnitTypeIdMustMatchPattern, UnitTypeDictionary::Constraints::UnitTypeListMustContainAtLeastOneUnitType, UnitTypeDictionary::Constraints::UnitTypeListMustHaveNamespace, UnitTypeDictionary::Constraints::UnitTypeMustContainDefinition, UnitTypeDictionary::Constraints::UnitTypeMustHaveIdAndName

Instance Method Summary collapse

Instance Method Details

#check(document) ⇒ Object



72
73
74
75
76
77
78
# File 'lib/chemicalml/convention/constraint.rb', line 72

def check(document)
  violations = []
  walk_nodes(document) do |node, path|
    violations.concat(Array(check_node(node, path)))
  end
  violations
end

#check_node(_node, _path) ⇒ Object



80
81
82
# File 'lib/chemicalml/convention/constraint.rb', line 80

def check_node(_node, _path)
  []
end