Class ValidationStrategies
java.lang.Object
com.amalgamasimulation.desktop.binding.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> static 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> 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) 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> static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution, String> realDistribution(Predicate<org.apache.commons.math3.distribution.RealDistribution> check, String errorMessage) static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution, String> realDistributionBetweenValues(double minValue, double maxValue) static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution, String> static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution, String> static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution, String> realDistributionPercentage(Predicate<org.apache.commons.math3.distribution.RealDistribution> check, String errorMessage) static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution, String> realDistributionPercentageBetweenValues(double minValue, double maxValue) static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution, String> static ValidationStrategy<String, String> static ValidationStrategy<String, String> static ValidationStrategy<com.amalgamasimulation.timeseriesdatamodel.TimeSeries, String> timeSeries(Function<com.amalgamasimulation.timeseriesdatamodel.TimeSeries, String> modelToTarget) static ValidationStrategy<String, String> uniqID(Supplier<List<?>> elements, org.eclipse.emf.ecore.EStructuralFeature feature, Supplier<Object> currentObject)
-
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- if either converter function is 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- if either converter function is 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- if either converter function is 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- if either converter function is 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
- Automatic validation of time ranges (00:00-23:59)
- 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- if either converter function is null
-
stringIsNotEmpty
-
stringAny
-
distribution
public static ValidationStrategy<com.amalgamasimulation.randomdatamodel.Distribution,String> distribution() -
realDistributionNonNegative
public static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution,String> realDistributionNonNegative() -
realDistributionPositiveWithoutZero
public static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution,String> realDistributionPositiveWithoutZero() -
realDistributionBetweenValues
public static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution,String> realDistributionBetweenValues(double minValue, double maxValue) -
realDistribution
public static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution,String> realDistribution(Predicate<org.apache.commons.math3.distribution.RealDistribution> check, String errorMessage) -
realDistributionPercentage
public static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution,String> realDistributionPercentage(Predicate<org.apache.commons.math3.distribution.RealDistribution> check, String errorMessage) -
realDistributionPercentageBetweenValues
public static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution,String> realDistributionPercentageBetweenValues(double minValue, double maxValue) -
realDistributionPercentage
public static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution,String> realDistributionPercentage() -
realDistribution
public static ValidationStrategy<org.apache.commons.math3.distribution.RealDistribution,String> realDistribution() -
timeSeries
public static ValidationStrategy<com.amalgamasimulation.timeseriesdatamodel.TimeSeries,String> timeSeries(Function<com.amalgamasimulation.timeseriesdatamodel.TimeSeries, String> modelToTarget) -
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 specified 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 specified 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.- 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., "1.23e+05")
- Accepts input in either standard or exponential notation
- Uses zero decimal places for display (whole number exponents)
- Returns:
- Validation strategy for exponential number formatting
Example valid inputs:
- "123000" (displays as "1e+05")
- "1.23e5" (displays as "1e+05")
- "0.000123" (displays as "1e-04")
-
createDoubleExponentialStrategy
public static ValidationStrategy<Double,String> createDoubleExponentialStrategy(String errorMessage, DoublePredicate check) Creates a customizable validation strategy for numbers with exponential notation display.- Parameters:
errorMessage- Error message to display for invalid inputscheck- Custom validation predicate for the parsed number- Returns:
- Configured exponential number validation strategy
Formatting details:
- Uses String.format("%1.0e") for display (1 significant digit)
- Input parsing handles both '.' and ',' decimal separators
- Internal storage is as standard double value
-
doublePercentage
Creates a validation strategy for percentage values (0-100).- Returns:
- ValidationStrategy for 0-100% range with 2 decimal places
-
doublePercentageWithoutZero
-
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)
- Parameters:
errorMessage- Error message to display for invalid inputsvalidator- Custom validation predicate (operates on percentage values)- Returns:
- Configured percentage validation strategy
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
-
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.
- 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.
- Returns:
- A validation strategy for AWT Color values
-
identifiedObject
public static <V> ValidationStrategy<V,String> identifiedObject(List<V> values, Function<V, String> identifierExtractor) -
uniqID
-