diff --git a/src/main/java/com/ezylang/evalex/data/conversion/ArrayConverter.java b/src/main/java/com/ezylang/evalex/data/conversion/ArrayConverter.java
index 7325bb9e..ee8d0011 100644
--- a/src/main/java/com/ezylang/evalex/data/conversion/ArrayConverter.java
+++ b/src/main/java/com/ezylang/evalex/data/conversion/ArrayConverter.java
@@ -39,7 +39,7 @@ public EvaluationValue convert(Object object, ExpressionConfiguration configurat
}
@Override
- public boolean canConvert(Object object, ExpressionConfiguration configuration) {
+ public boolean canConvert(Object object) {
return object instanceof List || object.getClass().isArray();
}
diff --git a/src/main/java/com/ezylang/evalex/data/conversion/BinaryConverter.java b/src/main/java/com/ezylang/evalex/data/conversion/BinaryConverter.java
index 4c658a71..0952a2ef 100644
--- a/src/main/java/com/ezylang/evalex/data/conversion/BinaryConverter.java
+++ b/src/main/java/com/ezylang/evalex/data/conversion/BinaryConverter.java
@@ -31,7 +31,7 @@ public EvaluationValue convert(Object object, ExpressionConfiguration configurat
}
@Override
- public boolean canConvert(Object object, ExpressionConfiguration configuration) {
- return configuration.isBinaryAllowed();
+ public boolean canConvert(Object object) {
+ return true;
}
}
diff --git a/src/main/java/com/ezylang/evalex/data/conversion/BooleanConverter.java b/src/main/java/com/ezylang/evalex/data/conversion/BooleanConverter.java
index 9d6a9e70..143f8cd5 100644
--- a/src/main/java/com/ezylang/evalex/data/conversion/BooleanConverter.java
+++ b/src/main/java/com/ezylang/evalex/data/conversion/BooleanConverter.java
@@ -26,7 +26,7 @@ public EvaluationValue convert(Object object, ExpressionConfiguration configurat
}
@Override
- public boolean canConvert(Object object, ExpressionConfiguration configuration) {
+ public boolean canConvert(Object object) {
return object instanceof Boolean;
}
}
diff --git a/src/main/java/com/ezylang/evalex/data/conversion/ConverterIfc.java b/src/main/java/com/ezylang/evalex/data/conversion/ConverterIfc.java
index 6263809c..689fdeaf 100644
--- a/src/main/java/com/ezylang/evalex/data/conversion/ConverterIfc.java
+++ b/src/main/java/com/ezylang/evalex/data/conversion/ConverterIfc.java
@@ -34,10 +34,9 @@ public interface ConverterIfc {
* Checks, if a given object can be converted by this converter.
*
* @param object The object to convert.
- * @param configuration The current expression configuration.
* @return true
if the object can be converted, false otherwise.
*/
- boolean canConvert(Object object, ExpressionConfiguration configuration);
+ boolean canConvert(Object object);
default IllegalArgumentException illegalArgument(Object object) {
return new IllegalArgumentException(
diff --git a/src/main/java/com/ezylang/evalex/data/conversion/DateTimeConverter.java b/src/main/java/com/ezylang/evalex/data/conversion/DateTimeConverter.java
index 25916fb6..ece92ec6 100644
--- a/src/main/java/com/ezylang/evalex/data/conversion/DateTimeConverter.java
+++ b/src/main/java/com/ezylang/evalex/data/conversion/DateTimeConverter.java
@@ -89,7 +89,7 @@ private Instant parseToInstant(String value, ZoneId zoneId, DateTimeFormatter fo
}
@Override
- public boolean canConvert(Object object, ExpressionConfiguration configuration) {
+ public boolean canConvert(Object object) {
return (object instanceof Instant
|| object instanceof ZonedDateTime
|| object instanceof OffsetDateTime
diff --git a/src/main/java/com/ezylang/evalex/data/conversion/DefaultEvaluationValueConverter.java b/src/main/java/com/ezylang/evalex/data/conversion/DefaultEvaluationValueConverter.java
index f95e50d4..3fd6a0ba 100644
--- a/src/main/java/com/ezylang/evalex/data/conversion/DefaultEvaluationValueConverter.java
+++ b/src/main/java/com/ezylang/evalex/data/conversion/DefaultEvaluationValueConverter.java
@@ -48,7 +48,6 @@
*
ASTNode | ASTNode |
* List<?> | ArrayConverter - each entry will be converted |
* Map<?,?> | StructureConverter - each entry will be converted |
- * Other types | BinaryConverter |
*
*
* * Be careful with conversion problems when using float or double, which are fractional
@@ -65,8 +64,7 @@ public class DefaultEvaluationValueConverter implements EvaluationValueConverter
new DurationConverter(),
new ExpressionNodeConverter(),
new ArrayConverter(),
- new StructureConverter(),
- new BinaryConverter());
+ new StructureConverter());
@Override
public EvaluationValue convertObject(Object object, ExpressionConfiguration configuration) {
@@ -80,11 +78,15 @@ public EvaluationValue convertObject(Object object, ExpressionConfiguration conf
}
for (ConverterIfc converter : converters) {
- if (converter.canConvert(object, configuration)) {
+ if (converter.canConvert(object)) {
return converter.convert(object, configuration);
}
}
+ if (configuration.isBinaryAllowed()) {
+ return EvaluationValue.binaryValue(object);
+ }
+
throw new IllegalArgumentException(
"Unsupported data type '" + object.getClass().getName() + "'");
}
diff --git a/src/main/java/com/ezylang/evalex/data/conversion/DurationConverter.java b/src/main/java/com/ezylang/evalex/data/conversion/DurationConverter.java
index 1973ec62..43a95b5c 100644
--- a/src/main/java/com/ezylang/evalex/data/conversion/DurationConverter.java
+++ b/src/main/java/com/ezylang/evalex/data/conversion/DurationConverter.java
@@ -27,7 +27,7 @@ public EvaluationValue convert(Object object, ExpressionConfiguration configurat
}
@Override
- public boolean canConvert(Object object, ExpressionConfiguration configuration) {
+ public boolean canConvert(Object object) {
return object instanceof Duration;
}
}
diff --git a/src/main/java/com/ezylang/evalex/data/conversion/ExpressionNodeConverter.java b/src/main/java/com/ezylang/evalex/data/conversion/ExpressionNodeConverter.java
index 7ba918d9..92228198 100644
--- a/src/main/java/com/ezylang/evalex/data/conversion/ExpressionNodeConverter.java
+++ b/src/main/java/com/ezylang/evalex/data/conversion/ExpressionNodeConverter.java
@@ -27,7 +27,7 @@ public EvaluationValue convert(Object object, ExpressionConfiguration configurat
}
@Override
- public boolean canConvert(Object object, ExpressionConfiguration configuration) {
+ public boolean canConvert(Object object) {
return object instanceof ASTNode;
}
}
diff --git a/src/main/java/com/ezylang/evalex/data/conversion/NumberConverter.java b/src/main/java/com/ezylang/evalex/data/conversion/NumberConverter.java
index ab4f8459..f39767bc 100644
--- a/src/main/java/com/ezylang/evalex/data/conversion/NumberConverter.java
+++ b/src/main/java/com/ezylang/evalex/data/conversion/NumberConverter.java
@@ -51,7 +51,7 @@ public EvaluationValue convert(Object object, ExpressionConfiguration configurat
}
@Override
- public boolean canConvert(Object object, ExpressionConfiguration configuration) {
+ public boolean canConvert(Object object) {
return (object instanceof BigDecimal
|| object instanceof BigInteger
|| object instanceof Double
diff --git a/src/main/java/com/ezylang/evalex/data/conversion/StringConverter.java b/src/main/java/com/ezylang/evalex/data/conversion/StringConverter.java
index 7052a6a8..636a65bd 100644
--- a/src/main/java/com/ezylang/evalex/data/conversion/StringConverter.java
+++ b/src/main/java/com/ezylang/evalex/data/conversion/StringConverter.java
@@ -37,7 +37,7 @@ public EvaluationValue convert(Object object, ExpressionConfiguration configurat
}
@Override
- public boolean canConvert(Object object, ExpressionConfiguration configuration) {
+ public boolean canConvert(Object object) {
return (object instanceof CharSequence || object instanceof Character);
}
}
diff --git a/src/main/java/com/ezylang/evalex/data/conversion/StructureConverter.java b/src/main/java/com/ezylang/evalex/data/conversion/StructureConverter.java
index 03a1c899..0a5cf927 100644
--- a/src/main/java/com/ezylang/evalex/data/conversion/StructureConverter.java
+++ b/src/main/java/com/ezylang/evalex/data/conversion/StructureConverter.java
@@ -33,7 +33,7 @@ public EvaluationValue convert(Object object, ExpressionConfiguration configurat
}
@Override
- public boolean canConvert(Object object, ExpressionConfiguration configuration) {
+ public boolean canConvert(Object object) {
return object instanceof Map;
}
}
diff --git a/src/test/java/com/ezylang/evalex/data/conversion/ArrayConverterTest.java b/src/test/java/com/ezylang/evalex/data/conversion/ArrayConverterTest.java
index e7112ae4..66b664fa 100644
--- a/src/test/java/com/ezylang/evalex/data/conversion/ArrayConverterTest.java
+++ b/src/test/java/com/ezylang/evalex/data/conversion/ArrayConverterTest.java
@@ -218,18 +218,18 @@ void testStringArray() {
@Test
void testCanConvert() {
- assertThat(converter.canConvert(new String[] {"1", "2", "3"}, defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(Collections.EMPTY_LIST, defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(Arrays.asList(1, 2, 3), defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(new Integer[] {1, 2, 3}, defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(new int[] {1, 2, 3}, defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(new double[] {1.0, 2.0, 3.0}, defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(new boolean[] {true, false}, defaultConfiguration)).isTrue();
+ assertThat(converter.canConvert(new String[] {"1", "2", "3"})).isTrue();
+ assertThat(converter.canConvert(Collections.EMPTY_LIST)).isTrue();
+ assertThat(converter.canConvert(Arrays.asList(1, 2, 3))).isTrue();
+ assertThat(converter.canConvert(new Integer[] {1, 2, 3})).isTrue();
+ assertThat(converter.canConvert(new int[] {1, 2, 3})).isTrue();
+ assertThat(converter.canConvert(new double[] {1.0, 2.0, 3.0})).isTrue();
+ assertThat(converter.canConvert(new boolean[] {true, false})).isTrue();
}
@Test
void testCanNotConvert() {
- assertThat(converter.canConvert(new BigDecimal(1), defaultConfiguration)).isFalse();
+ assertThat(converter.canConvert(new BigDecimal(1))).isFalse();
}
@Test
diff --git a/src/test/java/com/ezylang/evalex/data/conversion/BinaryConverterTest.java b/src/test/java/com/ezylang/evalex/data/conversion/BinaryConverterTest.java
index 64ead837..635d0521 100644
--- a/src/test/java/com/ezylang/evalex/data/conversion/BinaryConverterTest.java
+++ b/src/test/java/com/ezylang/evalex/data/conversion/BinaryConverterTest.java
@@ -23,11 +23,8 @@
class BinaryConverterTest {
- private final ExpressionConfiguration configurationAllowed =
- ExpressionConfiguration.builder().binaryAllowed(true).build();
-
- private final ExpressionConfiguration configurationNotAllowed =
- ExpressionConfiguration.builder().binaryAllowed(false).build();
+ private final ExpressionConfiguration defaultConfiguration =
+ ExpressionConfiguration.defaultConfiguration();
private final BinaryConverter converter = new BinaryConverter();
@@ -35,7 +32,7 @@ class BinaryConverterTest {
void testObject() {
Object object = new Object();
- EvaluationValue converted = converter.convert(object, configurationAllowed);
+ EvaluationValue converted = converter.convert(object, defaultConfiguration);
assertThat(converted.getDataType()).isEqualTo(EvaluationValue.DataType.BINARY);
assertThat(converted.getValue()).isSameAs(object);
@@ -43,11 +40,6 @@ void testObject() {
@Test
void testCanConvert() {
- assertThat(converter.canConvert(new Object(), configurationAllowed)).isTrue();
- }
-
- @Test
- void testCanNotConvert() {
- assertThat(converter.canConvert(new Object(), configurationNotAllowed)).isFalse();
+ assertThat(converter.canConvert(new Object())).isTrue();
}
}
diff --git a/src/test/java/com/ezylang/evalex/data/conversion/BooleanConverterTest.java b/src/test/java/com/ezylang/evalex/data/conversion/BooleanConverterTest.java
index 3628839a..a2d3c1fa 100644
--- a/src/test/java/com/ezylang/evalex/data/conversion/BooleanConverterTest.java
+++ b/src/test/java/com/ezylang/evalex/data/conversion/BooleanConverterTest.java
@@ -47,14 +47,14 @@ void testBooleanFalse() {
@Test
void testCanConvert() {
- assertThat(converter.canConvert(true, defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(Boolean.valueOf("false"), defaultConfiguration)).isTrue();
+ assertThat(converter.canConvert(true)).isTrue();
+ assertThat(converter.canConvert(Boolean.valueOf("false"))).isTrue();
}
@Test
void testCanNotConvert() {
- assertThat(converter.canConvert("true", defaultConfiguration)).isFalse();
- assertThat(converter.canConvert(new BigDecimal(1), defaultConfiguration)).isFalse();
+ assertThat(converter.canConvert("true")).isFalse();
+ assertThat(converter.canConvert(new BigDecimal(1))).isFalse();
}
@Test
diff --git a/src/test/java/com/ezylang/evalex/data/conversion/DateTimeConverterTest.java b/src/test/java/com/ezylang/evalex/data/conversion/DateTimeConverterTest.java
index cc37058f..a35890d1 100644
--- a/src/test/java/com/ezylang/evalex/data/conversion/DateTimeConverterTest.java
+++ b/src/test/java/com/ezylang/evalex/data/conversion/DateTimeConverterTest.java
@@ -128,19 +128,19 @@ void testCalendar() {
@Test
void testCanConvert() {
- assertThat(converter.canConvert(Instant.now(), defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(ZonedDateTime.now(), defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(OffsetDateTime.now(), defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(LocalDate.now(), defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(LocalDateTime.now(), defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(new Date(), defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(Calendar.getInstance(), defaultConfiguration)).isTrue();
+ assertThat(converter.canConvert(Instant.now())).isTrue();
+ assertThat(converter.canConvert(ZonedDateTime.now())).isTrue();
+ assertThat(converter.canConvert(OffsetDateTime.now())).isTrue();
+ assertThat(converter.canConvert(LocalDate.now())).isTrue();
+ assertThat(converter.canConvert(LocalDateTime.now())).isTrue();
+ assertThat(converter.canConvert(new Date())).isTrue();
+ assertThat(converter.canConvert(Calendar.getInstance())).isTrue();
}
@Test
void testCanNotConvert() {
- assertThat(converter.canConvert("hello", defaultConfiguration)).isFalse();
- assertThat(converter.canConvert(new BigDecimal(1), defaultConfiguration)).isFalse();
+ assertThat(converter.canConvert("hello")).isFalse();
+ assertThat(converter.canConvert(new BigDecimal(1))).isFalse();
}
@Test
diff --git a/src/test/java/com/ezylang/evalex/data/conversion/DurationConverterTest.java b/src/test/java/com/ezylang/evalex/data/conversion/DurationConverterTest.java
index 3766f29d..dde75dac 100644
--- a/src/test/java/com/ezylang/evalex/data/conversion/DurationConverterTest.java
+++ b/src/test/java/com/ezylang/evalex/data/conversion/DurationConverterTest.java
@@ -42,12 +42,12 @@ void testDuration() {
@Test
void testCanConvert() {
- assertThat(converter.canConvert(Duration.ofMinutes(10), defaultConfiguration)).isTrue();
+ assertThat(converter.canConvert(Duration.ofMinutes(10))).isTrue();
}
@Test
void testCanNotConvert() {
- assertThat(converter.canConvert("hello", defaultConfiguration)).isFalse();
- assertThat(converter.canConvert(new BigDecimal(10), defaultConfiguration)).isFalse();
+ assertThat(converter.canConvert("hello")).isFalse();
+ assertThat(converter.canConvert(new BigDecimal(10))).isFalse();
}
}
diff --git a/src/test/java/com/ezylang/evalex/data/conversion/ExpressionNodeConverterTest.java b/src/test/java/com/ezylang/evalex/data/conversion/ExpressionNodeConverterTest.java
index b97facc7..276fb53d 100644
--- a/src/test/java/com/ezylang/evalex/data/conversion/ExpressionNodeConverterTest.java
+++ b/src/test/java/com/ezylang/evalex/data/conversion/ExpressionNodeConverterTest.java
@@ -45,12 +45,12 @@ void testDuration() {
@Test
void testCanConvert() {
- assertThat(converter.canConvert(testNode, defaultConfiguration)).isTrue();
+ assertThat(converter.canConvert(testNode)).isTrue();
}
@Test
void testCanNotConvert() {
- assertThat(converter.canConvert("hello", defaultConfiguration)).isFalse();
- assertThat(converter.canConvert(new BigDecimal(10), defaultConfiguration)).isFalse();
+ assertThat(converter.canConvert("hello")).isFalse();
+ assertThat(converter.canConvert(new BigDecimal(10))).isFalse();
}
}
diff --git a/src/test/java/com/ezylang/evalex/data/conversion/NumberConverterTest.java b/src/test/java/com/ezylang/evalex/data/conversion/NumberConverterTest.java
index f8e6b804..f5a70365 100644
--- a/src/test/java/com/ezylang/evalex/data/conversion/NumberConverterTest.java
+++ b/src/test/java/com/ezylang/evalex/data/conversion/NumberConverterTest.java
@@ -109,20 +109,20 @@ void testByte() {
@Test
void testCanConvert() {
- assertThat(converter.canConvert(new BigDecimal(8), defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(new BigInteger("5"), defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(Double.parseDouble("3.0"), defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(Float.parseFloat("2.0"), defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(3, defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(3L, defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(Short.parseShort("79"), defaultConfiguration)).isTrue();
- assertThat(converter.canConvert(Byte.parseByte("2"), defaultConfiguration)).isTrue();
+ assertThat(converter.canConvert(new BigDecimal(8))).isTrue();
+ assertThat(converter.canConvert(new BigInteger("5"))).isTrue();
+ assertThat(converter.canConvert(Double.parseDouble("3.0"))).isTrue();
+ assertThat(converter.canConvert(Float.parseFloat("2.0"))).isTrue();
+ assertThat(converter.canConvert(3)).isTrue();
+ assertThat(converter.canConvert(3L)).isTrue();
+ assertThat(converter.canConvert(Short.parseShort("79"))).isTrue();
+ assertThat(converter.canConvert(Byte.parseByte("2"))).isTrue();
}
@Test
void testCanNotConvert() {
- assertThat(converter.canConvert("hello", defaultConfiguration)).isFalse();
- assertThat(converter.canConvert(true, defaultConfiguration)).isFalse();
+ assertThat(converter.canConvert("hello")).isFalse();
+ assertThat(converter.canConvert(true)).isFalse();
}
@Test
diff --git a/src/test/java/com/ezylang/evalex/data/conversion/StringConverterTest.java b/src/test/java/com/ezylang/evalex/data/conversion/StringConverterTest.java
index d9587665..12088d96 100644
--- a/src/test/java/com/ezylang/evalex/data/conversion/StringConverterTest.java
+++ b/src/test/java/com/ezylang/evalex/data/conversion/StringConverterTest.java
@@ -48,14 +48,14 @@ void testCharacter() {
@Test
void testCanConvert() {
- assertThat(converter.canConvert("Hello", defaultConfiguration)).isTrue();
- assertThat(converter.canConvert('P', defaultConfiguration)).isTrue();
+ assertThat(converter.canConvert("Hello")).isTrue();
+ assertThat(converter.canConvert('P')).isTrue();
}
@Test
void testCanNotConvert() {
- assertThat(converter.canConvert(new BigDecimal(3), defaultConfiguration)).isFalse();
- assertThat(converter.canConvert(true, defaultConfiguration)).isFalse();
+ assertThat(converter.canConvert(new BigDecimal(3))).isFalse();
+ assertThat(converter.canConvert(true)).isFalse();
}
@Test
diff --git a/src/test/java/com/ezylang/evalex/data/conversion/StructureConverterTest.java b/src/test/java/com/ezylang/evalex/data/conversion/StructureConverterTest.java
index 9807cb36..e78f1b10 100644
--- a/src/test/java/com/ezylang/evalex/data/conversion/StructureConverterTest.java
+++ b/src/test/java/com/ezylang/evalex/data/conversion/StructureConverterTest.java
@@ -66,12 +66,12 @@ void testMapEmpty() {
@Test
void testCanConvert() {
- assertThat(converter.canConvert(Collections.EMPTY_MAP, defaultConfiguration)).isTrue();
+ assertThat(converter.canConvert(Collections.EMPTY_MAP)).isTrue();
}
@Test
void testCanNotConvert() {
- assertThat(converter.canConvert(new int[] {1, 2, 3}, defaultConfiguration)).isFalse();
- assertThat(converter.canConvert(new BigDecimal(1), defaultConfiguration)).isFalse();
+ assertThat(converter.canConvert(new int[] {1, 2, 3})).isFalse();
+ assertThat(converter.canConvert(new BigDecimal(1))).isFalse();
}
}