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::Cascade::Constraints::ReactionSchemeMustHaveContent, Chemicalml::Convention::Cascade::Constraints::ReactionStepListMustContainSteps, Chemicalml::Convention::Cascade::Constraints::ReactionStepMustHaveReactionOrLists, Chemicalml::Convention::Cascade::Constraints::ReactiveCentreAtomRefsShouldBePresent, 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::FinalizationMustHaveContent, Chemicalml::Convention::Compchem::Constraints::FinalizationMustNotContainParameter, Chemicalml::Convention::Compchem::Constraints::InitializationAtMostOneMolecule, Chemicalml::Convention::Compchem::Constraints::InitializationAtMostOneParameterList, Chemicalml::Convention::Compchem::Constraints::InitializationMustHaveContent, 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::AtomElementTypeShouldBeInPeriodicTable, Molecular::Constraints::AtomIdMustMatchPattern, Molecular::Constraints::AtomMustHaveElementType, Molecular::Constraints::AtomMustHaveId, Molecular::Constraints::AtomParityAtomRefs4ShouldBeDistinct, Molecular::Constraints::BondArrayMustBeChildOfMolecule, Molecular::Constraints::BondAtomRefs2ShouldBeDistinct, Molecular::Constraints::BondIdShouldMatchPattern, Molecular::Constraints::BondMustHaveAtomRefs2, Molecular::Constraints::BondMustHaveOrder, Molecular::Constraints::BondOrderOtherMustHaveDictRef, Molecular::Constraints::BondOrderShouldBeInEnum, Molecular::Constraints::BondOrderShouldNotBeNumeric, Molecular::Constraints::BondStereoAtomRefs4ShouldBeDistinct, Molecular::Constraints::BondStereoCisTransMustHaveAtomRefs4, Molecular::Constraints::BondStereoOtherMustHaveDictRef, Molecular::Constraints::BondStereoShouldBeInEnum, Molecular::Constraints::BondStereoWedgeHashMustHaveAtomRefs2, Molecular::Constraints::DictRefShouldResolve, Molecular::Constraints::MoleculeAtomArrayMutuallyExclusiveWithChildren, Molecular::Constraints::MoleculeBondArrayMutuallyExclusiveWithChildren, Molecular::Constraints::MoleculeChiralityShouldBeInEnum, Molecular::Constraints::MoleculeIdShouldMatchPattern, Molecular::Constraints::MoleculeMustHaveId, Molecular::Constraints::PropertyMustHaveDictRef, Molecular::Constraints::PropertyScalarDataTypeMatchesDictionary, Molecular::Constraints::ScalarMustHaveDataType, SimpleUnit::Constraints::UnitMustHavePower, SimpleUnit::Constraints::UnitMustHaveSymbol, Spectroscopy::Constraints::PeakListMustContainPeaks, Spectroscopy::Constraints::PeakShouldHaveValues, Spectroscopy::Constraints::SpectrumMustHaveContent, Spectroscopy::Constraints::SpectrumMustHaveConvention, Spectroscopy::Constraints::SpectrumMustHaveFormat, UnitDictionary::Constraints::UnitListMustContainAtLeastOneUnit, UnitDictionary::Constraints::UnitListMustHaveNamespace, UnitDictionary::Constraints::UnitMustContainDefinition, UnitDictionary::Constraints::UnitMustHaveId, UnitDictionary::Constraints::UnitMustHaveMultiplierOrConstantToSi, UnitDictionary::Constraints::UnitMustHaveParentSi, UnitDictionary::Constraints::UnitMustHaveSymbolAndUnitType, UnitDictionary::Constraints::UnitMustHaveTitle, UnitDictionary::Constraints::UnitParentSiShouldResolve, UnitDictionary::Constraints::UnitUnitTypeShouldResolve, 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



103
104
105
106
107
108
109
# File 'lib/chemicalml/convention/constraint.rb', line 103

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



111
112
113
# File 'lib/chemicalml/convention/constraint.rb', line 111

def check_node(_node, _path)
  []
end