Package jline.lang
Class FeatureSet
java.lang.Object
jline.lang.FeatureSet
- All Implemented Interfaces:
Serializable
Class representing the features of a particular solver
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a new FeatureSet with all features initialized to false. -
Method Summary
Modifier and TypeMethodDescriptionReturns the canonical registry of feature names (all features, enabled or not).booleaninspectFeature(String feature) Checks whether the given feature is used or not in the current feature setvoidSets a single feature to false in the feature set.voidSets multiple features to false in the feature set.voidSets a single feature to true in the feature set.voidSets multiple features to true in the feature set.static booleansupports(FeatureSet supported, FeatureSet used) Checks if the used features are supported by the given solverstatic StringsupportsReason(FeatureSet supported, FeatureSet used) Same feature comparison assupports(jline.lang.FeatureSet, jline.lang.FeatureSet)but returns a human-readable reason instead of a boolean (empty string when every used feature is supported), and without the side-effect warning.
-
Constructor Details
-
FeatureSet
public FeatureSet()Creates a new FeatureSet with all features initialized to false. This represents the default state where no features are enabled.
-
-
Method Details
-
supports
Checks if the used features are supported by the given solver- Parameters:
supported- - the features supported by the solverused- - the used features- Returns:
- - true if the used features are supported, false otherwise
-
supportsReason
Same feature comparison assupports(jline.lang.FeatureSet, jline.lang.FeatureSet)but returns a human-readable reason instead of a boolean (empty string when every used feature is supported), and without the side-effect warning. Intended for the method-aware gate and for feature-driven method selection, which probe several candidate methods and must not warn on the non-covering ones.- Parameters:
supported- - the features supported by the (method of the) solverused- - the used features- Returns:
- - empty string if supported, else the offending feature list
-
inspectFeature
Checks whether the given feature is used or not in the current feature set- Parameters:
feature- - the name of the given feature- Returns:
- - true if the given feature is used, false otherwise
-
featureNames
Returns the canonical registry of feature names (all features, enabled or not). Used by cross-codebase parity tooling to enumerate and compare per-method feature sets.- Returns:
- the set of all feature names in this FeatureSet
-
setFalse
Sets multiple features to false in the feature set.- Parameters:
features- array of feature names to disable- Throws:
RuntimeException- if any feature name is not recognized
-
setFalse
Sets a single feature to false in the feature set.- Parameters:
feature- the name of the feature to disable- Throws:
RuntimeException- if the feature name is not recognized
-
setTrue
Sets a single feature to true in the feature set.- Parameters:
feature- the name of the feature to enable- Throws:
RuntimeException- if the feature name is not recognized
-
setTrue
Sets multiple features to true in the feature set.- Parameters:
features- array of feature names to enable- Throws:
RuntimeException- if any feature name is not recognized
-