Package org.eclipse.rdf4j.sail.shacl.ast.constraintcomponents

## Class AbstractConstraintComponent

- java.lang.Object
- - org.eclipse.rdf4j.sail.shacl.ast.constraintcomponents.AbstractConstraintComponent

- All Implemented Interfaces:
    `ConstraintComponent`, `org.eclipse.rdf4j.sail.shacl.ast.Exportable`, `org.eclipse.rdf4j.sail.shacl.ast.TargetChainInterface`
  Direct Known Subclasses:
    `ClassConstraintComponent`, `ClosedConstraintComponent`, `DashHasValueInConstraintComponent`, `DisjointConstraintComponent`, `EqualsConstraintComponent`, `HasValueConstraintComponent`, `LessThanConstraintComponent`, `LessThanOrEqualsConstraintComponent`, `LogicalOperatorConstraintComponent`, `MaxCountConstraintComponent`, `MinCountConstraintComponent`, `NotConstraintComponent`, `QualifiedMaxCountConstraintComponent`, `QualifiedMinCountConstraintComponent`, `SimpleAbstractConstraintComponent`, `UniqueLangConstraintComponent`, `XoneConstraintComponent`

      public abstract class AbstractConstraintComponent
      extends Object
      implements ConstraintComponent

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.eclipse.rdf4j.sail.shacl.ast.constraintcomponents.ConstraintComponent

      `ConstraintComponent.Scope`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `VALUES_INJECTION_POINT` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractConstraintComponent()` |
    `AbstractConstraintComponent​(Resource id)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `org.eclipse.rdf4j.sail.shacl.ast.SparqlFragment` | `buildSparqlValidNodes_rsx_targetShape​(org.eclipse.rdf4j.sail.shacl.ast.StatementMatcher.Variable subject, org.eclipse.rdf4j.sail.shacl.ast.StatementMatcher.Variable object, RdfsSubClassOfReasoner rdfsSubClassOfReasoner, ConstraintComponent.Scope scope, org.eclipse.rdf4j.sail.shacl.ast.StatementMatcher.StableRandomVariableProvider stableRandomVariableProvider)` |
    `org.eclipse.rdf4j.sail.shacl.ast.ValidationQuery` | `generateSparqlValidationQuery​(ConnectionsGroup connectionsGroup, ValidationSettings validationSettings, boolean negatePlan, boolean negateChildren, ConstraintComponent.Scope scope)` |
    `PlanNode` | `generateTransactionalValidationPlan​(ConnectionsGroup connectionsGroup, ValidationSettings validationSettings, PlanNodeProvider overrideTargetNode, ConstraintComponent.Scope scope)` |
    `PlanNode` | `getAllTargetsPlan​(ConnectionsGroup connectionsGroup, Resource[] dataGraph, ConstraintComponent.Scope scope, org.eclipse.rdf4j.sail.shacl.ast.StatementMatcher.StableRandomVariableProvider stableRandomVariableProvider)` |
    `Resource` | `getId()` |
    `org.eclipse.rdf4j.sail.shacl.ast.ValidationApproach` | `getOptimalBulkValidationApproach()` | Should return the fastest validation approach for bulk validation.
    `org.eclipse.rdf4j.sail.shacl.ast.ValidationApproach` | `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.
    `TargetChain` | `getTargetChain()` |
    `boolean` | `requiresEvaluation​(ConnectionsGroup connectionsGroup, ConstraintComponent.Scope scope, Resource[] dataGraph, org.eclipse.rdf4j.sail.shacl.ast.StatementMatcher.StableRandomVariableProvider stableRandomVariableProvider)` |
    `void` | `setTargetChain​(TargetChain targetChain)` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.eclipse.rdf4j.sail.shacl.ast.constraintcomponents.ConstraintComponent

      `deepClone, getConstraintComponent`

    - ### Methods inherited from interface org.eclipse.rdf4j.sail.shacl.ast.Exportable

      `toModel`

- - ### Field Detail

    - #### VALUES_INJECTION_POINT

          public static final String VALUES_INJECTION_POINT

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### AbstractConstraintComponent

          public AbstractConstraintComponent​(Resource id)

    - #### AbstractConstraintComponent

          public AbstractConstraintComponent()

  - ### Method Detail

    - #### getId

          public Resource getId()

    - #### getTargetChain

          public TargetChain getTargetChain()

      Specified by:
        `getTargetChain` in interface `org.eclipse.rdf4j.sail.shacl.ast.TargetChainInterface`

    - #### setTargetChain

          public void setTargetChain​(TargetChain targetChain)

      Specified by:
        `setTargetChain` in interface `org.eclipse.rdf4j.sail.shacl.ast.TargetChainInterface`

    - #### generateSparqlValidationQuery

          public org.eclipse.rdf4j.sail.shacl.ast.ValidationQuery generateSparqlValidationQuery​(ConnectionsGroup connectionsGroup,
                                                                                                ValidationSettings validationSettings,
                                                                                                boolean negatePlan,
                                                                                                boolean negateChildren,
                                                                                                ConstraintComponent.Scope scope)

      Specified by:
        `generateSparqlValidationQuery` in interface `ConstraintComponent`

    - #### generateTransactionalValidationPlan

          public PlanNode generateTransactionalValidationPlan​(ConnectionsGroup connectionsGroup,
                                                              ValidationSettings validationSettings,
                                                              PlanNodeProvider overrideTargetNode,
                                                              ConstraintComponent.Scope scope)

      Specified by:
        `generateTransactionalValidationPlan` in interface `ConstraintComponent`

    - #### getPreferredValidationApproach

          public org.eclipse.rdf4j.sail.shacl.ast.ValidationApproach getPreferredValidationApproach​(ConnectionsGroup connectionsGroup)

      Description copied from interface: `ConstraintComponent`
      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.
      Specified by:
        `getPreferredValidationApproach` in interface `ConstraintComponent`

    - #### getOptimalBulkValidationApproach

          public org.eclipse.rdf4j.sail.shacl.ast.ValidationApproach getOptimalBulkValidationApproach()

      Description copied from interface: `ConstraintComponent`
      Should return the fastest validation approach for bulk validation. When aggregating multiple constraint components the most compatible should be chosen.
      Specified by:
        `getOptimalBulkValidationApproach` in interface `ConstraintComponent`

    - #### requiresEvaluation

          public boolean requiresEvaluation​(ConnectionsGroup connectionsGroup,
                                            ConstraintComponent.Scope scope,
                                            Resource[] dataGraph,
                                            org.eclipse.rdf4j.sail.shacl.ast.StatementMatcher.StableRandomVariableProvider stableRandomVariableProvider)

      Specified by:
        `requiresEvaluation` in interface `ConstraintComponent`
      Returns:
        true if the constraint component should be evaluated, eg. if validation is needed.

    - #### getAllTargetsPlan

          public PlanNode getAllTargetsPlan​(ConnectionsGroup connectionsGroup,
                                            Resource[] dataGraph,
                                            ConstraintComponent.Scope scope,
                                            org.eclipse.rdf4j.sail.shacl.ast.StatementMatcher.StableRandomVariableProvider stableRandomVariableProvider)

      Specified by:
        `getAllTargetsPlan` in interface `ConstraintComponent`

    - #### buildSparqlValidNodes_rsx_targetShape

          public org.eclipse.rdf4j.sail.shacl.ast.SparqlFragment buildSparqlValidNodes_rsx_targetShape​(org.eclipse.rdf4j.sail.shacl.ast.StatementMatcher.Variable subject,
                                                                                                       org.eclipse.rdf4j.sail.shacl.ast.StatementMatcher.Variable object,
                                                                                                       RdfsSubClassOfReasoner rdfsSubClassOfReasoner,
                                                                                                       ConstraintComponent.Scope scope,
                                                                                                       org.eclipse.rdf4j.sail.shacl.ast.StatementMatcher.StableRandomVariableProvider stableRandomVariableProvider)

      Specified by:
        `buildSparqlValidNodes_rsx_targetShape` in interface `ConstraintComponent`