diff options
author | Christian W. Damus | 2013-04-17 16:50:15 +0000 |
---|---|---|
committer | Eike Stepper | 2013-04-17 16:50:15 +0000 |
commit | 77ee757ef114df65f24f663f96fed6e323576e09 (patch) | |
tree | 40a72b3f6ae577423ed8330af8d0e54562a3dbe8 /plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/ReflectUtil.java | |
parent | 07543e3353f867e30cb3855549c386c32beec1e5 (diff) | |
download | cdo-77ee757ef114df65f24f663f96fed6e323576e09.tar.gz cdo-77ee757ef114df65f24f663f96fed6e323576e09.tar.xz cdo-77ee757ef114df65f24f663f96fed6e323576e09.zip |
[376620] IllegalStateException on
CDODeltaNotification.getNewBooleanValue()
https://bugs.eclipse.org/bugs/show_bug.cgi?id=376620
Diffstat (limited to 'plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/ReflectUtil.java')
-rw-r--r-- | plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/ReflectUtil.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/ReflectUtil.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/ReflectUtil.java index c9aef9ef81..c113d81ad2 100644 --- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/ReflectUtil.java +++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/ReflectUtil.java @@ -7,6 +7,7 @@ * * Contributors: * Eike Stepper - initial API and implementation + * Christian W. Damus (CEA) - bug 376620: switch on primitive types */ package org.eclipse.net4j.util; @@ -625,4 +626,53 @@ public final class ReflectUtil public @interface ExcludeFromDump { } + + /** + * @author Christian W. Damus (CEA) + * @since 3.3 + */ + public static enum PrimitiveType + { + BOOLEAN(boolean.class), // + BYTE(byte.class), // + CHAR(char.class), // + SHORT(short.class), // + INT(int.class), // + LONG(long.class), // + FLOAT(float.class), // + DOUBLE(double.class), // + VOID(void.class), // + NONE(null); + + private static final Map<Class<?>, PrimitiveType> INSTANCES = new HashMap<Class<?>, PrimitiveType>(); + + private final Class<?> type; + + static + { + for (PrimitiveType primitiveType : values()) + { + if (primitiveType.type != null) + { + INSTANCES.put(primitiveType.type, primitiveType); + } + } + } + + private PrimitiveType(Class<?> type) + { + this.type = type; + } + + public Class<?> type() + { + return type; + } + + public static PrimitiveType forClass(Class<?> clazz) + { + PrimitiveType result = INSTANCES.get(clazz); + return result == null ? NONE : result; + } + } } |