Class AbstractSimpleConstraintComponent
java.lang.Object
org.eclipse.rdf4j.sail.shacl.ast.constraintcomponents.AbstractConstraintComponent
org.eclipse.rdf4j.sail.shacl.ast.constraintcomponents.AbstractSimpleConstraintComponent
- All Implemented Interfaces:
ConstraintComponent, Exportable, TargetChainInterface
- Direct Known Subclasses:
DatatypeConstraintComponent, InConstraintComponent, LanguageInConstraintComponent, MaxExclusiveConstraintComponent, MaxInclusiveConstraintComponent, MaxLengthConstraintComponent, MinExclusiveConstraintComponent, MinInclusiveConstraintComponent, MinLengthConstraintComponent, NodeKindConstraintComponent, PatternConstraintComponent
-
Nested Class Summary
Nested classes/interfaces inherited from interface ConstraintComponent
ConstraintComponent.Scope -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Resourceprivate static final org.slf4j.Logger(package private) TargetChainFields inherited from class AbstractConstraintComponent
VALUES_INJECTION_POINT -
Constructor Summary
ConstructorsConstructorDescription -
Method Summary
Modifier and TypeMethodDescriptiongenerateSparqlValidationQuery(ConnectionsGroup connectionsGroup, ValidationSettings validationSettings, boolean negatePlan, boolean negateChildren, ConstraintComponent.Scope scope) generateTransactionalValidationPlan(ConnectionsGroup connectionsGroup, ValidationSettings validationSettings, PlanNodeProvider overrideTargetNode, ConstraintComponent.Scope scope) getAllTargetsPlan(ConnectionsGroup connectionsGroup, Resource[] dataGraph, ConstraintComponent.Scope scope, StatementMatcher.StableRandomVariableProvider stableRandomVariableProvider, ValidationSettings validationSettings) (package private) abstract Function<PlanNode, FilterPlanNode> private PlanNodegetFilterAttacherWithNegation(boolean negatePlan, PlanNode allTargets) getId()Should return the fastest validation approach for bulk validation.private PlanNodegetPlanNodeForOverrideTargetNode(ConnectionsGroup connectionsGroup, ValidationSettings validationSettings, PlanNodeProvider overrideTargetNode, ConstraintComponent.Scope scope, boolean negatePlan, StatementMatcher.StableRandomVariableProvider stableRandomVariableProvider, EffectiveTarget effectiveTarget, Optional<Path> path) getPreferredValidationApproach(ConnectionsGroup connectionsGroup) A constraint component should decide which validation approach is going to be the optimal performance wise based on the state of the transaction and base sail.private StringgetSparqlFilter(boolean negatePlan, StatementMatcher.Variable<Value> variable, StatementMatcher.StableRandomVariableProvider stableRandomVariableProvider) (package private) abstract StringgetSparqlFilterExpression(StatementMatcher.Variable<Value> variable, boolean negated) Simple constraints need only implement this method to support SPARQL based validation.(package private) StringliteralToString(Literal literal) voidsetTargetChain(TargetChain targetChain) Methods inherited from class AbstractConstraintComponent
buildSparqlValidNodes_rsx_targetShape, getAllTargetsIncludingThoseAddedByPath, requiresEvaluation, stringRepresentationOfValue, trimMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ConstraintComponent
deepClone, getDefaultMessageMethods inherited from interface Exportable
toModel
-
Field Details
-
logger
private static final org.slf4j.Logger logger -
id
-
targetChain
TargetChain targetChain
-
-
Constructor Details
-
AbstractSimpleConstraintComponent
-
AbstractSimpleConstraintComponent
public AbstractSimpleConstraintComponent()
-
-
Method Details
-
getId
- Overrides:
getIdin classAbstractConstraintComponent
-
getTargetChain
- Specified by:
getTargetChainin interfaceTargetChainInterface- Overrides:
getTargetChainin classAbstractConstraintComponent
-
setTargetChain
- Specified by:
setTargetChainin interfaceTargetChainInterface- Overrides:
setTargetChainin classAbstractConstraintComponent
-
generateTransactionalValidationPlan
public PlanNode generateTransactionalValidationPlan(ConnectionsGroup connectionsGroup, ValidationSettings validationSettings, PlanNodeProvider overrideTargetNode, ConstraintComponent.Scope scope) - Specified by:
generateTransactionalValidationPlanin interfaceConstraintComponent- Overrides:
generateTransactionalValidationPlanin classAbstractConstraintComponent
-
getPlanNodeForOverrideTargetNode
private PlanNode getPlanNodeForOverrideTargetNode(ConnectionsGroup connectionsGroup, ValidationSettings validationSettings, PlanNodeProvider overrideTargetNode, ConstraintComponent.Scope scope, boolean negatePlan, StatementMatcher.StableRandomVariableProvider stableRandomVariableProvider, EffectiveTarget effectiveTarget, Optional<Path> path) -
generateSparqlValidationQuery
public ValidationQuery generateSparqlValidationQuery(ConnectionsGroup connectionsGroup, ValidationSettings validationSettings, boolean negatePlan, boolean negateChildren, ConstraintComponent.Scope scope) - Specified by:
generateSparqlValidationQueryin interfaceConstraintComponent- Overrides:
generateSparqlValidationQueryin classAbstractConstraintComponent
-
getSparqlFilter
private String getSparqlFilter(boolean negatePlan, StatementMatcher.Variable<Value> variable, StatementMatcher.StableRandomVariableProvider stableRandomVariableProvider) -
getSparqlFilterExpression
abstract String getSparqlFilterExpression(StatementMatcher.Variable<Value> variable, boolean negated) Simple constraints need only implement this method to support SPARQL based validation. The returned filter body should evaluate to true for values that fail validation, unless negated==true. If the filter condition throws an error (a SPARQL runtime error, not Java error) then the error will be caught and coalesced to `true`.- Parameters:
variable-negated-- Returns:
- a string that is the body of a SPARQL filter
-
getFilterAttacherWithNegation
-
getPreferredValidationApproach
Description copied from interface:ConstraintComponentA constraint component should decide which validation approach is going to be the optimal performance wise based on the state of the transaction and base sail.- Specified by:
getPreferredValidationApproachin interfaceConstraintComponent- Overrides:
getPreferredValidationApproachin classAbstractConstraintComponent
-
getOptimalBulkValidationApproach
Description copied from interface:ConstraintComponentShould return the fastest validation approach for bulk validation. When aggregating multiple constraint components the most compatible should be chosen.- Specified by:
getOptimalBulkValidationApproachin interfaceConstraintComponent- Overrides:
getOptimalBulkValidationApproachin classAbstractConstraintComponent
-
getConstraintComponent
-
getFilterAttacher
-
literalToString
-
getAllTargetsPlan
public PlanNode getAllTargetsPlan(ConnectionsGroup connectionsGroup, Resource[] dataGraph, ConstraintComponent.Scope scope, StatementMatcher.StableRandomVariableProvider stableRandomVariableProvider, ValidationSettings validationSettings) - Specified by:
getAllTargetsPlanin interfaceConstraintComponent- Overrides:
getAllTargetsPlanin classAbstractConstraintComponent
-