You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2019/11/03 15:42:17 UTC
[groovy] 01/18: Trivial refactoring: cleanup `CachedClass`
This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch GROOVY_3_0_X
in repository https://gitbox.apache.org/repos/asf/groovy.git
commit 4dc126fdab673ac9d450a58933c02883bb2f214b
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Nov 3 20:49:23 2019 +0800
Trivial refactoring: cleanup `CachedClass`
(cherry picked from commit ea09b5119d62f1c6e73c11ec1cf730aa13efedd2)
---
.../codehaus/groovy/reflection/CachedClass.java | 60 ++++++++++------------
1 file changed, 27 insertions(+), 33 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/reflection/CachedClass.java b/src/main/java/org/codehaus/groovy/reflection/CachedClass.java
index 51c2083..9e26796 100644
--- a/src/main/java/org/codehaus/groovy/reflection/CachedClass.java
+++ b/src/main/java/org/codehaus/groovy/reflection/CachedClass.java
@@ -63,11 +63,9 @@ public class CachedClass {
public CachedField[] initValue() {
final Field[] declaredFields = AccessController.doPrivileged((PrivilegedAction<Field[]>) () -> {
Field[] df = getTheClass().getDeclaredFields();
- df = Arrays.stream(df)
+ return Arrays.stream(df)
.filter(f -> checkCanSetAccessible(f, CachedClass.class))
.toArray(Field[]::new);
-// df = (Field[]) ReflectionUtils.makeAccessible(df);
- return df;
});
CachedField[] fields = new CachedField[declaredFields.length];
for (int i = 0; i != fields.length; ++i)
@@ -80,15 +78,12 @@ public class CachedClass {
private static final long serialVersionUID = -5834446523983631635L;
public CachedConstructor[] initValue() {
- final Constructor[] declaredConstructors = (Constructor[])
- AccessController.doPrivileged((PrivilegedAction<Constructor[]>) () -> {
- Constructor[] dc = getTheClass().getDeclaredConstructors();
- dc = Arrays.stream(dc)
- .filter(c -> checkCanSetAccessible(c, CachedClass.class))
- .toArray(Constructor[]::new);
-
- return dc;
- });
+ final Constructor[] declaredConstructors = AccessController.doPrivileged((PrivilegedAction<Constructor[]>) () -> {
+ Constructor[] dc = getTheClass().getDeclaredConstructors();
+ return Arrays.stream(dc)
+ .filter(c -> checkCanSetAccessible(c, CachedClass.class))
+ .toArray(Constructor[]::new);
+ });
CachedConstructor[] constructors = new CachedConstructor[declaredConstructors.length];
for (int i = 0; i != constructors.length; ++i)
constructors[i] = new CachedConstructor(CachedClass.this, declaredConstructors[i]);
@@ -104,18 +99,16 @@ public class CachedClass {
declaredMethods = AccessController.doPrivileged((PrivilegedAction<Method[]>) () -> {
try {
Method[] dm = getTheClass().getDeclaredMethods();
- dm = Arrays.stream(dm)
+ return Arrays.stream(dm)
.filter(m -> checkCanSetAccessible(m, CachedClass.class))
.toArray(Method[]::new);
-// dm = (Method[]) ReflectionUtils.makeAccessible(dm);
- return dm;
} catch (Throwable e) {
// Typically, Android can throw ClassNotFoundException
return EMPTY_METHOD_ARRAY;
}
});
- List<CachedMethod> methods = new ArrayList<CachedMethod>(declaredMethods.length);
- List<CachedMethod> mopMethods = new ArrayList<CachedMethod>(declaredMethods.length);
+ List<CachedMethod> methods = new ArrayList<>(declaredMethods.length);
+ List<CachedMethod> mopMethods = new ArrayList<>(declaredMethods.length);
for (int i = 0; i != declaredMethods.length; ++i) {
final CachedMethod cachedMethod = new CachedMethod(CachedClass.this, declaredMethods[i]);
final String name = cachedMethod.getName();
@@ -175,7 +168,7 @@ public class CachedClass {
private static final long serialVersionUID = 7166687623678851596L;
public LinkedList<ClassInfo> initValue() {
- Set<ClassInfo> res = new LinkedHashSet<ClassInfo> ();
+ Set<ClassInfo> res = new LinkedHashSet<>();
res.add(classInfo);
@@ -189,7 +182,7 @@ public class CachedClass {
if (isInterface)
res.add(ReflectionCache.OBJECT_CLASS.classInfo);
- return new LinkedList<ClassInfo> (res);
+ return new LinkedList<>(res);
}
};
@@ -204,7 +197,7 @@ public class CachedClass {
private static final long serialVersionUID = 2139190436931329873L;
public Set<CachedClass> initValue() {
- Set<CachedClass> res = new HashSet<CachedClass> (0);
+ Set<CachedClass> res = new HashSet<>(0);
Class[] classes = getTheClass().getInterfaces();
for (Class cls : classes) {
@@ -218,7 +211,7 @@ public class CachedClass {
private static final long serialVersionUID = 4060471819464086940L;
public Set<CachedClass> initValue() {
- Set<CachedClass> res = new HashSet<CachedClass> (0);
+ Set<CachedClass> res = new HashSet<>(0);
if (getTheClass().isInterface())
res.add(CachedClass.this);
@@ -308,12 +301,12 @@ public class CachedClass {
public Object coerceArgument(Object argument) {
return argument;
}
-
+
public int getSuperClassDistance() {
- if (distance>=0) return distance;
+ if (distance >= 0) return distance;
int distance = 0;
- for (Class klazz= getTheClass(); klazz != null; klazz = klazz.getSuperclass()) {
+ for (Class klazz = getTheClass(); klazz != null; klazz = klazz.getSuperclass()) {
distance++;
}
this.distance = distance;
@@ -354,7 +347,7 @@ public class CachedClass {
}
public MetaMethod[] getNewMetaMethods() {
- List<MetaMethod> arr = new ArrayList<MetaMethod>(Arrays.asList(classInfo.newMetaMethods));
+ List<MetaMethod> arr = new ArrayList<>(Arrays.asList(classInfo.newMetaMethods));
final MetaClass metaClass = classInfo.getStrongMetaClass();
if (metaClass instanceof ExpandoMetaClass) {
@@ -442,7 +435,7 @@ public class CachedClass {
if (metaClass != null) {
if (metaClass.getClass() == MetaClassImpl.class) {
classInfo.setStrongMetaClass(null);
- List<MetaMethod> res = new ArrayList<MetaMethod>();
+ List<MetaMethod> res = new ArrayList<>();
Collections.addAll(res, classInfo.newMetaMethods);
res.addAll(arr);
updateSetNewMopMethods(res);
@@ -474,12 +467,12 @@ public class CachedClass {
}
private void updateAddNewMopMethods(List<MetaMethod> arr) {
- List<MetaMethod> res = new ArrayList<MetaMethod>();
+ List<MetaMethod> res = new ArrayList<>();
res.addAll(Arrays.asList(classInfo.newMetaMethods));
res.addAll(arr);
classInfo.newMetaMethods = res.toArray(MetaMethod.EMPTY_ARRAY);
Class theClass = classInfo.getCachedClass().getTheClass();
- if (theClass==Closure.class || theClass==Class.class) {
+ if (theClass == Closure.class || theClass == Class.class) {
ClosureMetaClass.resetCachedMetaClasses();
}
}
@@ -500,11 +493,12 @@ public class CachedClass {
return hierarchy.get();
}
- public static class CachedMethodComparatorByName implements Comparator {
+ public static class CachedMethodComparatorByName implements Comparator<CachedMethod> {
public static final Comparator INSTANCE = new CachedMethodComparatorByName();
- public int compare(Object o1, Object o2) {
- return ((CachedMethod)o1).getName().compareTo(((CachedMethod)o2).getName());
+ @Override
+ public int compare(CachedMethod o1, CachedMethod o2) {
+ return o1.getName().compareTo(o2.getName());
}
}
@@ -513,9 +507,9 @@ public class CachedClass {
public int compare(Object o1, Object o2) {
if (o1 instanceof CachedMethod)
- return ((CachedMethod)o1).getName().compareTo((String)o2);
+ return ((CachedMethod) o1).getName().compareTo((String) o2);
else
- return ((String)o1).compareTo(((CachedMethod)o2).getName());
+ return ((String) o1).compareTo(((CachedMethod) o2).getName());
}
}