You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2014/09/15 05:34:45 UTC
[4/8] git commit: Enum generics dance updates.
Enum generics dance updates.
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/c6669849
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/c6669849
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/c6669849
Branch: refs/heads/master
Commit: c6669849d030711ee6989b5ef5ec24d668653611
Parents: 14dc857
Author: Matt Sicker <ma...@apache.org>
Authored: Sun Sep 14 22:25:28 2014 -0500
Committer: Matt Sicker <ma...@apache.org>
Committed: Sun Sep 14 22:25:28 2014 -0500
----------------------------------------------------------------------
.../config/plugins/convert/TypeConverterRegistry.java | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/c6669849/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverterRegistry.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverterRegistry.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverterRegistry.java
index e9a9576..47319e7 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverterRegistry.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverterRegistry.java
@@ -81,11 +81,8 @@ public class TypeConverterRegistry {
return primary;
}
// dynamic enum support
- if (type instanceof Class<?>) {
- final Class<?> clazz = (Class<?>) type;
- if (clazz.isEnum()) {
- return registerEnumType(clazz.asSubclass(Enum.class));
- }
+ if (type instanceof Class<?> && ((Class<?>) type).isEnum()) {
+ return registerEnumType(type);
}
// look for compatible converters
for (final Map.Entry<Type, TypeConverter<?>> entry : registry.entrySet()) {
@@ -152,8 +149,9 @@ public class TypeConverterRegistry {
registry.putIfAbsent(aliasType, registry.get(knownType));
}
- private <E extends Enum<E>> TypeConverter<E> registerEnumType(final Class<E> type) {
- final TypeConverter<E> converter = new EnumConverter<E>(type);
+ private <E extends Enum<E>> TypeConverter<? extends E> registerEnumType(final Type type) {
+ @SuppressWarnings("unchecked")
+ final TypeConverter<E> converter = new EnumConverter<E>((Class<E>) type);
registry.putIfAbsent(type, converter);
return converter;
}