001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package dev.metaschema.core.metapath;
007
008import dev.metaschema.core.configuration.AbstractConfigurationFeature;
009import edu.umd.cs.findbugs.annotations.NonNull;
010
011/**
012 * Provides a mechanism to configure Metapath evaluation settings.
013 *
014 * @param <V>
015 *          the feature value Java type
016 */
017public final class MetapathEvaluationFeature<V>
018    extends AbstractConfigurationFeature<V> {
019  /**
020   * If enabled, evaluate <a href=
021   * "https://www.w3.org/TR/xpath-31/#id-filter-expression">predicates</a>,
022   * otherwise skip evaluating them.
023   */
024  @NonNull
025  public static final MetapathEvaluationFeature<Boolean> METAPATH_EVALUATE_PREDICATES
026      = new MetapathEvaluationFeature<>("evaluate-predicates", Boolean.class, true);
027
028  private MetapathEvaluationFeature(
029      @NonNull String name,
030      @NonNull Class<V> valueClass,
031      @NonNull V defaultValue) {
032    super(name, valueClass, defaultValue);
033  }
034}