Class ValidationStrategies
-
Method Summary
Modifier and TypeMethodDescriptionstatic ValidationStrategy<Color, String> colorAWT()Creates a validation strategy for AWTColorvalues.static ValidationStrategy<org.eclipse.swt.graphics.Color, String> colorSWT()Creates a validation strategy for SWTColorvalues.static ValidationStrategy<Double, String> createDoubleExponentialStrategy(String errorMessage, DoublePredicate check) Creates a customizable validation strategy for numbers with exponential notation display.static ValidationStrategy<Double, String> createDoublePersentageStrategy(String errorMessage, DoublePredicate validator) Creates a customizable percentage validation strategy.static ValidationStrategy<Double, String> createDoubleStrategy(String errorMessage, DoublePredicate check, int countSign) Base factory method for creating double validation strategies.static ValidationStrategy<Double, String> createDoubleStrategy(String errorMessage, DoublePredicate check, int countSign, boolean setWithCountSign) Core factory method for creating double validation strategies.static ValidationStrategy<Integer, String> createIntegerStrategy(String errorMessage, IntPredicate check) Creates a customizable integer validation strategy.static ValidationStrategy<com.amalgamasimulation.randomdatamodel.Distribution, String> Deprecated.do not use in new codestatic ValidationStrategy<Double, String> doubleAbsValueMoreOrEqualDelta(double delta) Creates a validation strategy for absolute values ≥ delta.static ValidationStrategy<Double, String> Creates a validation strategy accepting any double value (2 decimal places).static ValidationStrategy<Double, String> doubleAny(boolean setWithCountSign) Creates a validation strategy accepting any double value with formatting control.static ValidationStrategy<Double, String> doubleAny(int countSign) Creates a validation strategy accepting any double value with specified decimal places.static ValidationStrategy<Double, String> doubleBetweenValues(double minValue, double maxValue) Creates a validation strategy for values within inclusive range.static ValidationStrategy<Double, String> doubleBetweenValues(double minValue, double maxValue, boolean setWithCountSign) Creates a validation strategy for bounded values with formatting control.static ValidationStrategy<Double, String> doubleBetweenValues(double minValue, double maxValue, int countSign, boolean setWithCountSign) Creates a validation strategy for bounded values with custom decimal places.static ValidationStrategy<Double, String> Creates a validation strategy for numbers in exponential (scientific) notation.static ValidationStrategy<Double, String> Creates a validation strategy for values ≥1.static ValidationStrategy<Double, String> doubleMoreOrEqualValue(double minValue) Creates a validation strategy for values ≥ specified minimum (2 decimal places).static ValidationStrategy<Double, String> doubleMoreOrEqualValue(int countSign, double minValue) Creates a validation strategy for values ≥ specified minimum.static ValidationStrategy<Double, String> Creates a validation strategy for percentage values (0-100).static ValidationStrategy<Double, String> doublePercentage(double minValue, double maxValue) Creates a validation strategy for percentage values within a specific range.static ValidationStrategy<Double, String> Creates a validation strategy for percentage values in (0, 100].static ValidationStrategy<Double, String> Creates a validation strategy for positive values (>0) with 2 decimal places.static ValidationStrategy<Double, String> doublePositive(int countSign) Creates a validation strategy for positive values (>0).static ValidationStrategy<Double, String> Creates a validation strategy for non-negative values (≥0) with 2 decimal places.static ValidationStrategy<Double, String> doublePositiveWithZero(int countSign) Creates a validation strategy for non-negative values (≥0).static ValidationStrategy<Double, String> doubleStrictlyBetweenValues(double minValue, double maxValue) Creates a validation strategy for values within exclusive range.static <V> ValidationStrategy<V, String> identifiedObject(List<V> values, Function<V, String> identifierExtractor) Creates a validation strategy for an object fromvaluesfound by its identifier.static ValidationStrategy<Integer, String> Creates a validation strategy that accepts any valid integer.static ValidationStrategy<Integer, String> integerBetweenValues(int minValue, int maxValue) Creates a validation strategy for integers within an inclusive range.static ValidationStrategy<Integer, String> Creates a validation strategy for positive integers (greater than zero).static ValidationStrategy<Integer, String> Creates a validation strategy for non-negative integers (zero or greater).static ValidationStrategy<Integer, String> integerStriclyBetweenValues(int minValue, int maxValue) Creates a validation strategy for integers within an exclusive range.static ValidationStrategy<LocalDateTime, String> Creates a default validation strategy forLocalDateTimedate values (without time component) that requires non-empty values.static ValidationStrategy<LocalDateTime, String> localDate(boolean canBeEmpty) Creates a default validation strategy forLocalDateTimedate values (without time component) that allows empty values based on the parameter.static ValidationStrategy<LocalDateTime, String> localDate(Function<String, LocalDateTime> stringToLocalDate, Function<LocalDateTime, String> localDateToString) Creates a customizable validation strategy forLocalDateTimedate values that requires non-empty values.static ValidationStrategy<LocalDateTime, String> localDate(Function<String, LocalDateTime> stringToLocalDate, Function<LocalDateTime, String> localDateToString, boolean canBeEmpty) Creates a fully customizable validation strategy forLocalDateTimedate values.static ValidationStrategy<LocalDateTime, String> Creates a default validation strategy forLocalDateTimevalues that requires non-empty input.static ValidationStrategy<LocalDateTime, String> localDateTime(boolean canBeEmpty) Creates a default validation strategy forLocalDateTimevalues that optionally allows empty values.static ValidationStrategy<LocalDateTime, String> localDateTime(Function<String, LocalDateTime> stringToLocalDateTime, Function<LocalDateTime, String> localDateTimeToString, boolean canBeEmpty) Creates a fully customizable validation strategy forLocalDateTimevalues.static ValidationStrategy<LocalTime, String> Creates a default validation strategy forLocalTimevalues that requires non-empty input.static ValidationStrategy<LocalTime, String> localTime(boolean canBeEmpty) Creates a default validation strategy forLocalTimevalues with configurable empty value handling.static ValidationStrategy<LocalTime, String> localTime(Function<String, LocalTime> stringToLocalTime, Function<LocalTime, String> localTimeToString) Creates a customizable validation strategy forLocalTimevalues that requires non-empty input.static ValidationStrategy<LocalTime, String> localTime(Function<String, LocalTime> stringToLocalTime, Function<LocalTime, String> localTimeToString, boolean canBeEmpty) Creates a fully customizable validation strategy forLocalTimevalues.static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution, String> Creates a validation strategy for anyRealDistributionthatDistributionscan parse.static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution, String> realDistribution(Predicate<org.apache.commons.math3.distribution.RealDistribution> check, String errorMessage) Creates a validation strategy for aRealDistributionwritten as text in theDistributionsformat and checked bycheck.static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution, String> realDistributionBetweenValues(double minValue, double maxValue) Creates a validation strategy for aRealDistributionwhose support lies within [minValue, maxValue].static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution, String> Creates a validation strategy for aRealDistributionwhose support lower bound is ≥ 0.static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution, String> Creates a percent distribution strategy where a constant must lie within 0-100 percent.static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution, String> realDistributionPercentage(Predicate<org.apache.commons.math3.distribution.RealDistribution> check, String errorMessage) Creates a validation strategy for aRealDistributionin percent.static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution, String> realDistributionPercentageBetweenValues(double minValue, double maxValue) Creates a percent distribution strategy where a constant must lie within [minValue, maxValue] percent.static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution, String> Creates a validation strategy for aRealDistributionwhose support lower bound is > 0.static ValidationStrategy<String, String> Creates a validation strategy that accepts any string and passes it through unchanged.static ValidationStrategy<String, String> Creates a validation strategy for a string that is not empty and not only spaces.static ValidationStrategy<com.amalgamasimulation.timeseriesdatamodel.TimeSeries, String> timeSeries(Function<com.amalgamasimulation.timeseriesdatamodel.TimeSeries, String> modelToTarget) Creates a strategy for aTimeSeriesfield.static ValidationStrategy<String, String> uniqID(Supplier<List<?>> elements, org.eclipse.emf.ecore.EStructuralFeature feature, Supplier<Object> currentObject) Creates a validation strategy for an identifier that no other object inelementshas infeature.
-
Method Details
-
localDate
Creates a default validation strategy forLocalDateTimedate values (without time component) that allows empty values based on the parameter.Uses the default date format (day/month/year) for parsing and display.
- Parameters:
canBeEmpty- If true, empty or null input values are considered valid- Returns:
- A validation strategy for date-only LocalDateTime values
- See Also:
-
localDate
Creates a default validation strategy forLocalDateTimedate values (without time component) that requires non-empty values.- Returns:
- A validation strategy for required date-only LocalDateTime values
-
localDate
public static ValidationStrategy<LocalDateTime,String> localDate(Function<String, LocalDateTime> stringToLocalDate, Function<LocalDateTime, String> localDateToString) Creates a customizable validation strategy forLocalDateTimedate values that requires non-empty values.- Parameters:
stringToLocalDate- Function to parse string into LocalDateTimelocalDateToString- Function to format LocalDateTime into string- Returns:
- Configured validation strategy for date values
- Throws:
NullPointerException- iflocalDateToStringis null
-
localDate
public static ValidationStrategy<LocalDateTime,String> localDate(Function<String, LocalDateTime> stringToLocalDate, Function<LocalDateTime, String> localDateToString, boolean canBeEmpty) Creates a fully customizable validation strategy forLocalDateTimedate values.The strategy includes:
- Optional empty value handling
- Custom parsing and formatting
- Localized error messages
- Parameters:
stringToLocalDate- Function to parse string into LocalDateTimelocalDateToString- Function to format LocalDateTime into stringcanBeEmpty- If true, empty or null input values are considered valid- Returns:
- Configured validation strategy for date values
- Throws:
NullPointerException- iflocalDateToStringis null
-
localDateTime
Creates a default validation strategy forLocalDateTimevalues that optionally allows empty values. Uses the default format (day/month/year hours:minutes) for parsing and display.- Parameters:
canBeEmpty- If true, empty or null input values are considered valid- Returns:
- A validation strategy configured for LocalDateTime with optional empty values
- See Also:
-
localDateTime
Creates a default validation strategy forLocalDateTimevalues that requires non-empty input. Uses the default format (day/month/year hours:minutes) for parsing and display.- Returns:
- A validation strategy configured for required LocalDateTime values
-
localDateTime
public static ValidationStrategy<LocalDateTime,String> localDateTime(Function<String, LocalDateTime> stringToLocalDateTime, Function<LocalDateTime, String> localDateTimeToString, boolean canBeEmpty) Creates a fully customizable validation strategy forLocalDateTimevalues.The strategy provides:
- Custom parsing and formatting
- Optional empty value handling
- Localized error messages with format example
- Two-way conversion between String and LocalDateTime
- Parameters:
stringToLocalDateTime- Function to parse string into LocalDateTimelocalDateTimeToString- Function to format LocalDateTime into stringcanBeEmpty- If true, empty or null input values are considered valid- Returns:
- Configured validation strategy for LocalDateTime values
- Throws:
NullPointerException- iflocalDateTimeToStringis null
-
localTime
Creates a default validation strategy forLocalTimevalues that requires non-empty input. Uses the default time format (hours:minutes) for parsing and display.- Returns:
- A validation strategy configured for required LocalTime values
- See Also:
-
localTime
Creates a default validation strategy forLocalTimevalues with configurable empty value handling. Uses the default time format (hours:minutes) for parsing and display.- Parameters:
canBeEmpty- If true, empty or null input values are considered valid- Returns:
- A validation strategy configured for LocalTime with optional empty values
-
localTime
public static ValidationStrategy<LocalTime,String> localTime(Function<String, LocalTime> stringToLocalTime, Function<LocalTime, String> localTimeToString) Creates a customizable validation strategy forLocalTimevalues that requires non-empty input.- Parameters:
stringToLocalTime- Function to parse string into LocalTimelocalTimeToString- Function to format LocalTime into string- Returns:
- Configured validation strategy for LocalTime values
- Throws:
NullPointerException- iflocalTimeToStringis null
-
localTime
public static ValidationStrategy<LocalTime,String> localTime(Function<String, LocalTime> stringToLocalTime, Function<LocalTime, String> localTimeToString, boolean canBeEmpty) Creates a fully customizable validation strategy forLocalTimevalues.The strategy provides:
- Custom time parsing and formatting
- Configurable empty value handling
- Localized error messages with format example
- Two-way conversion between String and LocalTime
- Time range checked only by
stringToLocalTime
- Parameters:
stringToLocalTime- Function to parse string into LocalTimelocalTimeToString- Function to format LocalTime into stringcanBeEmpty- If true, empty or null input values are considered valid- Returns:
- Configured validation strategy for LocalTime values
- Throws:
NullPointerException- iflocalTimeToStringis null
-
stringIsNotEmpty
Creates a validation strategy for a string that is not empty and not only spaces. A null model value is shown as an empty string.- Returns:
- ValidationStrategy for non-empty strings
-
stringAny
Creates a validation strategy that accepts any string and passes it through unchanged.- Returns:
- ValidationStrategy for any string
-
distribution
@Deprecated public static ValidationStrategy<com.amalgamasimulation.randomdatamodel.Distribution,String> distribution()Deprecated.do not use in new codeCreates a strategy for aDistributionfield. The field is not edited as text: a button sets the value, and the strategy always writesnullto the model. An empty value ("Undefined") is invalid.- Returns:
- ValidationStrategy for Distribution values
-
realDistributionNonNegative
public static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution,String> realDistributionNonNegative()Creates a validation strategy for aRealDistributionwhose support lower bound is ≥ 0.- Returns:
- ValidationStrategy for non-negative distributions
-
realDistributionPositiveWithoutZero
public static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution,String> realDistributionPositiveWithoutZero()Creates a validation strategy for aRealDistributionwhose support lower bound is > 0.- Returns:
- ValidationStrategy for positive distributions
-
realDistributionBetweenValues
public static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution,String> realDistributionBetweenValues(double minValue, double maxValue) Creates a validation strategy for aRealDistributionwhose support lies within [minValue, maxValue].- Parameters:
minValue- Minimum support bound (inclusive)maxValue- Maximum support bound (inclusive)- Returns:
- ValidationStrategy for bounded distributions
-
realDistribution
public static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution,String> realDistribution(Predicate<org.apache.commons.math3.distribution.RealDistribution> check, String errorMessage) Creates a validation strategy for aRealDistributionwritten as text in theDistributionsformat and checked bycheck. An empty value is invalid.- Parameters:
check- Validation predicateerrorMessage- Validation error message- Returns:
- Configured ValidationStrategy
-
realDistributionPercentage
public static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution,String> realDistributionPercentage(Predicate<org.apache.commons.math3.distribution.RealDistribution> check, String errorMessage) Creates a validation strategy for aRealDistributionin percent. The '%' sign is optional. A constant is divided by 100 for the model and multiplied by 100 for display.checkapplies only to a constant, other distributions are accepted without it.- Parameters:
check- Validation predicate for a constant, in percenterrorMessage- Validation error message- Returns:
- Configured ValidationStrategy
-
realDistributionPercentageBetweenValues
public static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution,String> realDistributionPercentageBetweenValues(double minValue, double maxValue) Creates a percent distribution strategy where a constant must lie within [minValue, maxValue] percent. Other distributions are accepted without a check.- Parameters:
minValue- Minimum percentage (inclusive)maxValue- Maximum percentage (inclusive)- Returns:
- ValidationStrategy for bounded percent distributions
-
realDistributionPercentage
public static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution,String> realDistributionPercentage()Creates a percent distribution strategy where a constant must lie within 0-100 percent. Other distributions are accepted without a check.- Returns:
- ValidationStrategy for percent distributions
-
realDistribution
public static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution,String> realDistribution()Creates a validation strategy for anyRealDistributionthatDistributionscan parse. An empty value is invalid.- Returns:
- ValidationStrategy for any distribution
-
timeSeries
public static ValidationStrategy<com.amalgamasimulation.timeseriesdatamodel.TimeSeries,String> timeSeries(Function<com.amalgamasimulation.timeseriesdatamodel.TimeSeries, String> modelToTarget) Creates a strategy for aTimeSeriesfield. The field is not edited as text: the strategy writesnullto the model and builds the field text withmodelToTarget.- Parameters:
modelToTarget- Function that formats the time series for display- Returns:
- ValidationStrategy for TimeSeries values
-
doubleAny
Creates a validation strategy accepting any double value with specified decimal places.- Parameters:
countSign- Number of decimal places to display- Returns:
- ValidationStrategy for any double value
-
doubleMoreOrEqualValue
public static ValidationStrategy<Double,String> doubleMoreOrEqualValue(int countSign, double minValue) Creates a validation strategy for values ≥ specified minimum.- Parameters:
countSign- Number of decimal places to displayminValue- Minimum allowed value (inclusive)- Returns:
- ValidationStrategy for values ≥ minValue
-
doubleMoreOrEqualValue
Creates a validation strategy for values ≥ specified minimum (2 decimal places).- Parameters:
minValue- Minimum allowed value (inclusive)- Returns:
- ValidationStrategy for values ≥ minValue
-
doubleBetweenValues
public static ValidationStrategy<Double,String> doubleBetweenValues(double minValue, double maxValue) Creates a validation strategy for values within inclusive range.- Parameters:
minValue- Minimum allowed value (inclusive)maxValue- Maximum allowed value (inclusive)- Returns:
- ValidationStrategy for bounded values (2 decimal places)
-
doubleStrictlyBetweenValues
public static ValidationStrategy<Double,String> doubleStrictlyBetweenValues(double minValue, double maxValue) Creates a validation strategy for values within exclusive range.- Parameters:
minValue- Minimum value (exclusive)maxValue- Maximum value (exclusive)- Returns:
- ValidationStrategy for strictly bounded values (2 decimal places)
-
doubleAbsValueMoreOrEqualDelta
Creates a validation strategy for absolute values ≥ delta.- Parameters:
delta- Minimum absolute value- Returns:
- ValidationStrategy for |value| ≥ delta (2 decimal places)
-
doubleAny
Creates a validation strategy accepting any double value (2 decimal places).- Returns:
- ValidationStrategy for any double value
-
doublePositive
Creates a validation strategy for positive values (>0).- Parameters:
countSign- Number of decimal places to display- Returns:
- ValidationStrategy for positive values
-
doublePositive
Creates a validation strategy for positive values (>0) with 2 decimal places.- Returns:
- ValidationStrategy for positive values
-
doublePositiveWithZero
Creates a validation strategy for non-negative values (≥0).- Parameters:
countSign- Number of decimal places to display- Returns:
- ValidationStrategy for non-negative values
-
doublePositiveWithZero
Creates a validation strategy for non-negative values (≥0) with 2 decimal places.- Returns:
- ValidationStrategy for non-negative values
-
doubleMoreOrEqualsThanOne
Creates a validation strategy for values ≥1.- Returns:
- ValidationStrategy for values ≥1 (2 decimal places)
-
doubleAny
Creates a validation strategy accepting any double value with formatting control.- Parameters:
setWithCountSign- If true, rounds parsed values to 2 decimal places- Returns:
- ValidationStrategy for any double value (2 decimal places)
-
createDoubleStrategy
public static ValidationStrategy<Double,String> createDoubleStrategy(String errorMessage, DoublePredicate check, int countSign) Base factory method for creating double validation strategies.- Parameters:
errorMessage- Validation error messagecheck- Validation predicatecountSign- Number of decimal places to display- Returns:
- Configured ValidationStrategy
-
doubleBetweenValues
public static ValidationStrategy<Double,String> doubleBetweenValues(double minValue, double maxValue, boolean setWithCountSign) Creates a validation strategy for bounded values with formatting control.- Parameters:
minValue- Minimum value (inclusive)maxValue- Maximum value (inclusive)setWithCountSign- If true, rounds parsed values to 2 decimal places- Returns:
- ValidationStrategy for bounded values (2 decimal places)
-
doubleBetweenValues
public static ValidationStrategy<Double,String> doubleBetweenValues(double minValue, double maxValue, int countSign, boolean setWithCountSign) Creates a validation strategy for bounded values with custom decimal places.- Parameters:
minValue- Minimum value (inclusive)maxValue- Maximum value (inclusive)countSign- Number of decimal places to displaysetWithCountSign- If true, rounds parsed values to specified decimal places- Returns:
- Configured ValidationStrategy
-
createDoubleStrategy
public static ValidationStrategy<Double,String> createDoubleStrategy(String errorMessage, DoublePredicate check, int countSign, boolean setWithCountSign) Core factory method for creating double validation strategies.Input is parsed with
Double.parseDouble, so "NaN", "Infinity" and "-Infinity" reachcheckas numbers. Strategies without an upper bound accept "Infinity", anddoubleAny()also accepts "NaN". Such a value is displayed as "∞" or an empty string, and the strategy rejects that text.- Parameters:
errorMessage- Validation error messagecheck- Validation predicatecountSign- Number of decimal places to displaysetWithCountSign- If true, rounds parsed values to specified decimal places- Returns:
- Fully configured ValidationStrategy
-
doubleExponential
Creates a validation strategy for numbers in exponential (scientific) notation.Validates that:
- Input is a valid number (in any format)
- Null values are invalid
Formatting behavior:
- Displays values in exponential notation (e.g., "1e+05")
- Accepts input in either standard or exponential notation
- Uses zero decimal places for display (whole number exponents)
Example valid inputs:
- "123000" (displays as "1e+05")
- "1.23e5" (displays as "1e+05")
- "0.000123" (displays as "1e-04")
- Returns:
- Validation strategy for exponential number formatting
-
createDoubleExponentialStrategy
public static ValidationStrategy<Double,String> createDoubleExponentialStrategy(String errorMessage, DoublePredicate check) Creates a customizable validation strategy for numbers with exponential notation display.Formatting details:
- Uses String.format("%1.0e") for display (1 significant digit)
- Input parsing follows the default formats: in Russian formats ',' is the decimal separator, in other formats ',' is a thousands separator and is dropped
- Internal storage is as standard double value
Input is parsed with
Double.parseDouble, so "NaN", "Infinity" and "-Infinity" reachcheckas numbers, anddoubleExponential()accepts them.- Parameters:
errorMessage- Error message to display for invalid inputscheck- Custom validation predicate for the parsed number- Returns:
- Configured exponential number validation strategy
-
doublePercentage
Creates a validation strategy for percentage values (0-100).- Returns:
- ValidationStrategy for 0-100% range with 2 decimal places
-
doublePercentageWithoutZero
Creates a validation strategy for percentage values in (0, 100]. The model stores a fraction: 50% is 0.5.- Returns:
- ValidationStrategy for positive percentages
-
doublePercentage
Creates a validation strategy for percentage values within a specific range.Validates that:
- Input is a valid percentage (with or without '%' sign)
- Value is between minValue and maxValue (inclusive)
- Null values are invalid
Note: Internally stores values as decimals (e.g., 50% → 0.5)
- Parameters:
minValue- Minimum allowed percentage (inclusive)maxValue- Maximum allowed percentage (inclusive)- Returns:
- Validation strategy for bounded percentages
-
createDoublePersentageStrategy
public static ValidationStrategy<Double,String> createDoublePersentageStrategy(String errorMessage, DoublePredicate validator) Creates a customizable percentage validation strategy.Core validation includes:
- Percentage sign handling (optional)
- Decimal conversion (percentage → decimal)
- Custom validation via predicate
- Automatic formatting (decimal → percentage)
Implementation notes:
- Input values are divided by 100 for storage
- Stored values are multiplied by 100 for display
- Uses 2 decimal places for percentage display
- Uses 4 decimal places for internal precision
- Parameters:
errorMessage- Error message to display for invalid inputsvalidator- Custom validation predicate (operates on percentage values)- Returns:
- Configured percentage validation strategy
-
integerPositive
Creates a validation strategy for positive integers (greater than zero).Validates that:
- Input is a valid integer
- Value is greater than 0
- Null values are invalid
- Returns:
- Validation strategy for positive integers
-
integerPositiveWithZero
Creates a validation strategy for non-negative integers (zero or greater).Validates that:
- Input is a valid integer
- Value is 0 or greater
- Null values are invalid
- Returns:
- Validation strategy for non-negative integers
-
integerAny
Creates a validation strategy that accepts any valid integer.Validates that:
- Input is a valid integer
- Null values are invalid
- Returns:
- Validation strategy for any integer
-
integerBetweenValues
Creates a validation strategy for integers within an inclusive range.Validates that:
- Input is a valid integer
- Value is between minValue and maxValue (inclusive)
- Null values are invalid
- Parameters:
minValue- Minimum allowed value (inclusive)maxValue- Maximum allowed value (inclusive)- Returns:
- Validation strategy for bounded integers
-
integerStriclyBetweenValues
public static ValidationStrategy<Integer,String> integerStriclyBetweenValues(int minValue, int maxValue) Creates a validation strategy for integers within an exclusive range.Validates that:
- Input is a valid integer
- Value is strictly greater than minValue and less than maxValue
- Null values are invalid
- Parameters:
minValue- Minimum value (exclusive)maxValue- Maximum value (exclusive)- Returns:
- Validation strategy for strictly bounded integers
-
createIntegerStrategy
public static ValidationStrategy<Integer,String> createIntegerStrategy(String errorMessage, IntPredicate check) Creates a customizable integer validation strategy.Core validation includes:
- Basic integer parsing
- Null value checking
- Custom validation via predicate
- Parameters:
errorMessage- Error message to display for invalid inputscheck- Custom validation predicate- Returns:
- Configured integer validation strategy
-
colorSWT
Creates a validation strategy for SWTColorvalues.Validates and converts between color strings and SWT Color objects. Text format is "R, G, B": components 0-255 separated by a comma and a space. A fourth component is accepted and ignored.
- Returns:
- A validation strategy for SWT Color values
- See Also:
-
colorAWT
Creates a validation strategy for AWTColorvalues.Validates and converts between color strings and AWT Color objects. Text format is "R, G, B": components 0-255 separated by a comma and a space. A fourth component is accepted and ignored.
- Returns:
- A validation strategy for AWT Color values
-
identifiedObject
public static <V> ValidationStrategy<V,String> identifiedObject(List<V> values, Function<V, String> identifierExtractor) Creates a validation strategy for an object fromvaluesfound by its identifier. An unknown identifier is invalid.- Type Parameters:
V- Type of the objects- Parameters:
values- Objects to searchidentifierExtractor- Function that returns an object's identifier- Returns:
- ValidationStrategy for identified objects
-
uniqID
public static ValidationStrategy<String,String> uniqID(Supplier<List<?>> elements, org.eclipse.emf.ecore.EStructuralFeature feature, Supplier<Object> currentObject) Creates a validation strategy for an identifier that no other object inelementshas infeature.currentObjectis skipped, an empty string is valid.- Parameters:
elements- Supplier of the objects to checkfeature- Feature that holds the identifiercurrentObject- Supplier of the object being edited- Returns:
- ValidationStrategy for unique identifiers
-