Class FeatureType<F extends Feature<F>>

java.lang.Object
org.inferred.freebuilder.processor.source.feature.FeatureType<F>

public abstract class FeatureType<F extends Feature<F>> extends Object
Algorithm to select the correct instance of a given feature type for a processing environment, and the default to use in tests when an explicit value has not been registered for that feature.

Each feature class should expose a single FeatureType constant for the user to pass to SourceBuilder.feature(FeatureType), e.g. SourceLevel.SOURCE_LEVEL.

  • Constructor Details

    • FeatureType

      public FeatureType()
  • Method Details

    • testDefault

      protected abstract F testDefault(FeatureSet features)
      Returns the instance of F to use by default in tests.
    • forEnvironment

      protected abstract F forEnvironment(ProcessingEnvironment env, FeatureSet features)
      Returns the instance of F to use in env.
    • type

      protected Class<F> type()