ppkarwasz commented on code in PR #3505:
URL: https://github.com/apache/logging-log4j2/pull/3505#discussion_r1974221590
##########
log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultComponentBuilder.java:
##########
@@ -57,43 +59,51 @@ public DefaultComponentBuilder(final CB builder, final
String name, final String
this.value = value;
}
+ /** {@inheritDoc} */
@Override
public T addAttribute(final String key, final boolean value) {
return put(key, Boolean.toString(value));
}
+ /** {@inheritDoc} */
@Override
public T addAttribute(final String key, final Enum<?> value) {
- return put(key, value.name());
+ return put(key,
Optional.ofNullable(value).map(Enum::name).orElse(null));
}
+ /** {@inheritDoc} */
@Override
public T addAttribute(final String key, final int value) {
return put(key, Integer.toString(value));
}
+ /** {@inheritDoc} */
@Override
public T addAttribute(final String key, final Level level) {
- return put(key, level.toString());
+ return put(key,
Optional.ofNullable(level).map(Level::toString).orElse(null));
}
+ /** {@inheritDoc} */
@Override
public T addAttribute(final String key, final Object value) {
- return put(key, value.toString());
+ return put(key,
Optional.ofNullable(value).map(Object::toString).orElse(null));
Review Comment:
```suggestion
return put(key, Objects.toString(value, null));
```
##########
log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultComponentBuilder.java:
##########
@@ -57,43 +59,51 @@ public DefaultComponentBuilder(final CB builder, final
String name, final String
this.value = value;
}
+ /** {@inheritDoc} */
Review Comment:
Do we need it? Since we don't add anything, we can leave the Javadoc empty.
##########
log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultComponentBuilder.java:
##########
@@ -57,43 +59,51 @@ public DefaultComponentBuilder(final CB builder, final
String name, final String
this.value = value;
}
+ /** {@inheritDoc} */
@Override
public T addAttribute(final String key, final boolean value) {
return put(key, Boolean.toString(value));
}
+ /** {@inheritDoc} */
@Override
public T addAttribute(final String key, final Enum<?> value) {
- return put(key, value.name());
+ return put(key,
Optional.ofNullable(value).map(Enum::name).orElse(null));
Review Comment:
```suggestion
return put(key, value != null ? value.name() : null);
```
We tend to use more primitive expressions in Log4j to keep it garbage-free.
For a configuration it doesn't matter, but you'll find a lot of simple `null`
checks and iterations on arrays in the code.
Personally I wouldn't use `Optional` for a single method call.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]