From cd454f23b146caa191af3a6c4e51b75ede034ef6 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Fri, 4 Oct 2013 13:55:38 +0400 Subject: [PATCH] cleanup --- .../src/com/intellij/util/ReflectionUtil.java | 84 +++++++++---------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/platform/util/src/com/intellij/util/ReflectionUtil.java b/platform/util/src/com/intellij/util/ReflectionUtil.java index 33f14c5f1423..c43812cc756b 100644 --- a/platform/util/src/com/intellij/util/ReflectionUtil.java +++ b/platform/util/src/com/intellij/util/ReflectionUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2013 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,6 +24,7 @@ import org.jetbrains.annotations.Nullable; import java.lang.reflect.*; import java.util.ArrayList; import java.util.Arrays; +import java.util.List; public class ReflectionUtil { private static final Logger LOG = Logger.getInstance("#com.intellij.util.ReflectionUtil"); @@ -32,12 +33,12 @@ public class ReflectionUtil { } @Nullable - public static Type resolveVariable(TypeVariable variable, final Class classType) { + public static Type resolveVariable(@NotNull TypeVariable variable, @NotNull Class classType) { return resolveVariable(variable, classType, true); } @Nullable - public static Type resolveVariable(TypeVariable variable, final Class classType, boolean resolveInInterfacesOnly) { + public static Type resolveVariable(@NotNull TypeVariable variable, @NotNull Class classType, boolean resolveInInterfacesOnly) { final Class aClass = getRawType(classType); int index = ArrayUtilRt.find(ReflectionCache.getTypeParameters(aClass), variable); if (index >= 0) { @@ -81,13 +82,14 @@ public class ReflectionUtil { return null; } + @NotNull public static String declarationToString(@NotNull GenericDeclaration anInterface) { return anInterface.toString() + Arrays.asList(anInterface.getTypeParameters()) + " loaded by " + ((Class)anInterface).getClassLoader(); } - public static Class getRawType(Type type) { + public static Class getRawType(@NotNull Type type) { if (type instanceof Class) { return (Class)type; } @@ -102,12 +104,13 @@ public class ReflectionUtil { return null; } - public static Type[] getActualTypeArguments(final ParameterizedType parameterizedType) { + @NotNull + public static Type[] getActualTypeArguments(@NotNull ParameterizedType parameterizedType) { return ReflectionCache.getActualTypeArguments(parameterizedType); } @Nullable - public static Class substituteGenericType(final Type genericType, final Type classType) { + public static Class substituteGenericType(@NotNull Type genericType, @NotNull Type classType) { if (genericType instanceof TypeVariable) { final Class aClass = getRawType(classType); final Type type = resolveVariable((TypeVariable)genericType, aClass); @@ -129,14 +132,16 @@ public class ReflectionUtil { return null; } - public static ArrayList collectFields(Class clazz) { - ArrayList result = new ArrayList(); + @NotNull + public static List collectFields(@NotNull Class clazz) { + List result = new ArrayList(); collectFields(clazz, result); return result; } - public static Field findField(Class clazz, @Nullable Class type, String name) throws NoSuchFieldException { - final ArrayList fields = collectFields(clazz); + @NotNull + public static Field findField(@NotNull Class clazz, @Nullable Class type, @NotNull String name) throws NoSuchFieldException { + List fields = collectFields(clazz); for (Field each : fields) { if (name.equals(each.getName()) && (type == null || each.getType().equals(type))) return each; } @@ -144,8 +149,9 @@ public class ReflectionUtil { throw new NoSuchFieldException("Class: " + clazz + " name: " + name + " type: " + type); } - public static Field findAssignableField(Class clazz, Class type, String name) throws NoSuchFieldException { - final ArrayList fields = collectFields(clazz); + @NotNull + public static Field findAssignableField(@NotNull Class clazz, @NotNull Class type, @NotNull String name) throws NoSuchFieldException { + List fields = collectFields(clazz); for (Field each : fields) { if (name.equals(each.getName()) && type.isAssignableFrom(each.getType())) return each; } @@ -153,7 +159,7 @@ public class ReflectionUtil { throw new NoSuchFieldException("Class: " + clazz + " name: " + name + " type: " + type); } - private static void collectFields(final Class clazz, final ArrayList result) { + private static void collectFields(@NotNull Class clazz, @NotNull List result) { final Field[] fields = clazz.getDeclaredFields(); result.addAll(Arrays.asList(fields)); final Class superClass = clazz.getSuperclass(); @@ -166,7 +172,7 @@ public class ReflectionUtil { } } - public static void resetField(Class clazz, Class type, String name) { + public static void resetField(@NotNull Class clazz, @NotNull Class type, @NotNull String name) { try { resetField(null, findField(clazz, type, name)); } @@ -174,7 +180,7 @@ public class ReflectionUtil { LOG.info(e); } } - public static void resetField(Object object, Class type, String name) { + public static void resetField(@NotNull Object object, @NotNull Class type, @NotNull String name) { try { resetField(object, findField(object.getClass(), type, name)); } @@ -183,7 +189,7 @@ public class ReflectionUtil { } } - public static void resetField(Object object, String name) { + public static void resetField(@NotNull Object object, @NotNull String name) { try { resetField(object, findField(object.getClass(), null, name)); } @@ -192,21 +198,25 @@ public class ReflectionUtil { } } - public static void resetField(@Nullable final Object object, final Field field) { + public static void resetField(@Nullable final Object object, @NotNull Field field) { field.setAccessible(true); Class type = field.getType(); try { if (type.isPrimitive()) { if (boolean.class.equals(type)) { field.set(object, Boolean.FALSE); - } else if (int.class.equals(type)){ + } + else if (int.class.equals(type)) { field.set(object, new Integer(0)); - } else if (double.class.equals(type)) { + } + else if (double.class.equals(type)) { field.set(object, new Double(0)); - } else if (float.class.equals(type)) { + } + else if (float.class.equals(type)) { field.set(object, new Float(0)); } - } else { + } + else { field.set(object, null); } } @@ -216,7 +226,7 @@ public class ReflectionUtil { } @Nullable - public static Method findMethod(Method[] methods, @NonNls @NotNull String name, Class... parameters) { + public static Method findMethod(@NotNull Method[] methods, @NonNls @NotNull String name, @NotNull Class... parameters) { for (final Method method : methods) { if (name.equals(method.getName()) && Arrays.equals(parameters, method.getParameterTypes())) return method; } @@ -224,20 +234,20 @@ public class ReflectionUtil { } @Nullable - public static Method getMethod(@NotNull Class aClass, @NonNls @NotNull String name, Class... parameters) { + public static Method getMethod(@NotNull Class aClass, @NonNls @NotNull String name, @NotNull Class... parameters) { return findMethod(ReflectionCache.getMethods(aClass), name, parameters); } @Nullable - public static Method getDeclaredMethod(@NotNull Class aClass, @NonNls @NotNull String name, Class... parameters) { + public static Method getDeclaredMethod(@NotNull Class aClass, @NonNls @NotNull String name, @NotNull Class... parameters) { return findMethod(aClass.getDeclaredMethods(), name, parameters); } - public static Object getField(Class objectClass, Object object, Class type, @NonNls String name) { + public static T getField(@NotNull Class objectClass, Object object, @NotNull Class type, @NotNull @NonNls String name) { try { final Field field = findAssignableField(objectClass, type, name); field.setAccessible(true); - return field.get(object); + return (T)field.get(object); } catch (NoSuchFieldException e) { LOG.debug(e); @@ -249,7 +259,7 @@ public class ReflectionUtil { } } - public static Type resolveVariableInHierarchy(final TypeVariable variable, final Class aClass) { + public static Type resolveVariableInHierarchy(@NotNull TypeVariable variable, @NotNull Class aClass) { Type type; Class current = aClass; while ((type = resolveVariable(variable, current, false)) == null) { @@ -265,34 +275,24 @@ public class ReflectionUtil { } @NotNull - public static Constructor getDefaultConstructor(final Class aClass) { + public static Constructor getDefaultConstructor(@NotNull Class aClass) { try { final Constructor constructor = aClass.getConstructor(); constructor.setAccessible(true); return constructor; } catch (NoSuchMethodException e) { - LOG.error("No default constructor in " + aClass, e); - return null; + throw new RuntimeException("No default constructor in " + aClass, e); } } @NotNull - public static T createInstance(final Constructor constructor, final Object... args) { + public static T createInstance(@NotNull Constructor constructor, @NotNull Object... args) { try { return constructor.newInstance(args); } - catch (InstantiationException e) { - LOG.error(e); - return null; - } - catch (IllegalAccessException e) { - LOG.error(e); - return null; - } - catch (InvocationTargetException e) { - LOG.error(e); - return null; + catch (Exception e) { + throw new RuntimeException(e); } }