Interface Constraint

All Known Implementing Classes:
DefaultKeySizeConstraint, NoDeleteConstraint, VisibilityConstraint

public interface Constraint
Constraint objects are used to determine if mutations will be applied to a table.

This interface expects implementers to return violation codes. The reason codes are returned instead of arbitrary strings to encourage conciseness. Conciseness is needed because violations are aggregated. If a user sends a batch of 10,000 mutations to Accumulo, only aggregated counts about which violations occurred are returned. If the constraint implementer were allowed to return arbitrary violation strings like the following:

Value "abc" is not a number
Value "vbg" is not a number

This would not aggregate very well, because the same violation is represented with two different strings.

2.1.0 Replaces interface in org.apache.accumulo.core.constraints package
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    static interface 
    The environment within which a constraint exists.
  • Method Summary

    Modifier and Type
    Checks a mutation for constraint violations.
    getViolationDescription(short violationCode)
    Gets a short, one-sentence description of what a given violation code means.
  • Method Details

    • getViolationDescription

      String getViolationDescription(short violationCode)
      Gets a short, one-sentence description of what a given violation code means.
      violationCode - numeric violation code
      matching violation description
    • check

      List<Short> check(Constraint.Environment env, Mutation mutation)
      Checks a mutation for constraint violations. If the mutation contains no violations, returns null. Otherwise, returns a list of violation codes. Violation codes must be non-negative. Negative violation codes are reserved for system use.
      env - constraint environment
      mutation - mutation to check
      list of violation codes, or null if none