Skip to content

Commit 0d14bee

Browse files
authored
Merge pull request #8 from Runabout-LLC/dev
v1.2.2
2 parents d8eadf3 + 831a9b4 commit 0d14bee

11 files changed

Lines changed: 88 additions & 134 deletions

File tree

.gitignore

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ build/
55
!**/src/test/**/build/
66

77
### IntelliJ IDEA ###
8-
.idea/modules.xml
9-
.idea/jarRepositories.xml
10-
.idea/compiler.xml
11-
.idea/libraries/
8+
.idea/
9+
!.idea/gradle.xml
10+
!.idea/misc.xml
11+
!.idea/vcs.xml
1212
*.iws
1313
*.iml
1414
*.ipr

.idea/.gitignore

Lines changed: 0 additions & 2 deletions
This file was deleted.

.idea/uiDesigner.xml

Lines changed: 0 additions & 124 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Changelog
22

3+
## 1.2.2 - 2024-04-15
4+
### Added
5+
- Added support for anonymous classes as Runabout inputs. Anonymous classes will be cast to the interface/class they implement or extend.
6+
7+
### Fixed
8+
- Fixed an NPE in the default JsonObject implementation.
9+
310
## 1.2.1 - 2024-03-19
411
### Fixed
512
- Fixed a bug in the creation of the Runabout JSON with a null parameter. Now both type and eval for a null parameter will be "null".

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ plugins {
77
}
88

99
group = 'dev.runabout'
10-
version = '1.2.1'
10+
version = '1.2.2'
1111

1212
repositories {
1313
mavenCentral()

src/main/java/dev/runabout/DefaultSerializer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ private static RunaboutInput mapSerializer(final Map<?,?> map, final RunaboutSer
120120
// If either key/value cannot be serialized, return empty input.
121121
if (serialKey == null || serialKey.getEval() == null || serialKey.getEval().isEmpty() ||
122122
serialValue == null || serialValue.getEval() == null || serialValue.getEval().isEmpty()) {
123-
return RunaboutInput.of("", Collections.emptySet());
123+
return EMPTY_INPUT;
124124
}
125125
final String entryString = "put(" + serialKey.getEval() + ", " + serialValue.getEval() + "); ";
126126
builder.append(entryString);

src/main/java/dev/runabout/JsonObjectImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.HashMap;
44
import java.util.List;
55
import java.util.Map;
6+
import java.util.Optional;
67
import java.util.Set;
78
import java.util.StringJoiner;
89
import java.util.function.Supplier;
@@ -78,7 +79,7 @@ private static String valueToString(final Object value) {
7879
((List<?>) value).forEach(innerValue -> commaJoiner.add(valueToString(innerValue)));
7980
string = "[" + commaJoiner + "]";
8081
} else {
81-
string = value.toString();
82+
string = Optional.ofNullable(value).map(Object::toString).orElse("null");
8283
}
8384

8485
return string;

src/main/java/dev/runabout/RunaboutServiceImpl.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,16 @@ private static boolean validInput(final RunaboutInput input) {
167167
}
168168

169169
private static String getTypeSafe(final Object object) {
170-
return object == null ? "null" : object.getClass().getCanonicalName();
170+
return Optional.ofNullable(object)
171+
.map(Object::getClass)
172+
.map(clazz -> clazz.isAnonymousClass() ? getAnonymousImplClass(clazz) : clazz.getCanonicalName())
173+
.orElse("null");
174+
}
175+
176+
private static String getAnonymousImplClass(final Class<?> clazz) {
177+
return Optional.ofNullable(clazz)
178+
.map(c -> c.getInterfaces().length > 0 ? c.getInterfaces()[0] : c.getSuperclass())
179+
.map(Class::getCanonicalName)
180+
.orElse("null");
171181
}
172182
}

src/test/java/dev/runabout/fixtures/Logic1.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.io.OutputStream;
66
import java.util.Map;
77
import java.util.Set;
8+
import java.util.function.Supplier;
89

910
public class Logic1 {
1011

@@ -28,6 +29,11 @@ public String concatValuesLambdaLogger(final ConcreteClass1 cc1, final ConcreteC
2829
return concatValues(cc1, cc2);
2930
}
3031

32+
public String evaluateSupplierWrapper(SupplierWrapper supplier) {
33+
logger.runaboutInfo(this, supplier);
34+
return supplier.get() + " " + supplier.getOther();
35+
}
36+
3137
private String concatValues(final ConcreteClass1 cc1, final ConcreteClass2 cc2) {
3238
final StringBuilder builder = new StringBuilder(", ");
3339

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package dev.runabout.fixtures;
2+
3+
import java.util.function.Supplier;
4+
5+
public interface SupplierWrapper extends Supplier<String> {
6+
7+
@Override
8+
String get();
9+
10+
String getOther();
11+
}

0 commit comments

Comments
 (0)