Revision: 1198
Author: sberlin
Date: Sun Aug 1 12:38:28 2010
Log: part of issue 526 -- move MoreTypes.memberKey into LineNumbers.
LineNumbers was its only use, and the way LineNumbers used it, it was
heavily dependent on the implementation staying the same (one area
constructed its own key to insert into a hash map, and another area used
the method to reconstruct & retrieve from the map).
http://code.google.com/p/google-guice/source/detail?r=1198
Modified:
/trunk/src/com/google/inject/internal/MoreTypes.java
/trunk/src/com/google/inject/internal/util/LineNumbers.java
=======================================
--- /trunk/src/com/google/inject/internal/MoreTypes.java Sat Jul 3
08:51:31 2010
+++ /trunk/src/com/google/inject/internal/MoreTypes.java Sun Aug 1
12:38:28 2010
@@ -285,33 +285,6 @@
throw new AssertionError();
}
}
-
- public static String memberKey(Member member) {
- checkNotNull(member, "member");
-
- /*if[AOP]*/
- if (member instanceof Field) {
- return member.getName();
-
- } else if (member instanceof Method) {
- return member.getName() +
org.objectweb.asm.Type.getMethodDescriptor((Method) member);
-
- } else if (member instanceof Constructor) {
- StringBuilder sb = new StringBuilder().append("<init>(");
- for (Class param : ((Constructor) member).getParameterTypes()) {
- sb.append(org.objectweb.asm.Type.getDescriptor(param));
- }
- return sb.append(")V").toString();
-
- } else {
- throw new IllegalArgumentException(
- "Unsupported implementation class for Member, " +
member.getClass());
- }
- /*end[AOP]*/
- /*if[NO_AOP]
- return "<NO_MEMBER_KEY>";
- end[NO_AOP]*/
- }
/**
* Returns the generic supertype for {...@code supertype}. For example,
given a class {...@code
=======================================
--- /trunk/src/com/google/inject/internal/util/LineNumbers.java Sat Jul 3
08:51:31 2010
+++ /trunk/src/com/google/inject/internal/util/LineNumbers.java Sun Aug 1
12:38:28 2010
@@ -16,10 +16,14 @@
package com.google.inject.internal.util;
-import com.google.inject.internal.MoreTypes;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
+
import java.io.IOException;
import java.io.InputStream;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
import java.lang.reflect.Member;
+import java.lang.reflect.Method;
import java.util.Map;
import org.objectweb.asm.AnnotationVisitor;
import org.objectweb.asm.Attribute;
@@ -79,7 +83,7 @@
public Integer getLineNumber(Member member) {
Preconditions.checkArgument(type == member.getDeclaringClass(),
"Member %s belongs to %s, not %s", member,
member.getDeclaringClass(), type);
- return lines.get(MoreTypes.memberKey(member));
+ return lines.get(memberKey(member));
}
/** Gets the first line number. */
@@ -87,6 +91,33 @@
return firstLine == Integer.MAX_VALUE ? 1 : firstLine;
}
+ private String memberKey(Member member) {
+ checkNotNull(member, "member");
+
+ /*if[AOP]*/
+ if (member instanceof Field) {
+ return member.getName();
+
+ } else if (member instanceof Method) {
+ return member.getName() +
org.objectweb.asm.Type.getMethodDescriptor((Method) member);
+
+ } else if (member instanceof Constructor) {
+ StringBuilder sb = new StringBuilder().append("<init>(");
+ for (Class param : ((Constructor) member).getParameterTypes()) {
+ sb.append(org.objectweb.asm.Type.getDescriptor(param));
+ }
+ return sb.append(")V").toString();
+
+ } else {
+ throw new IllegalArgumentException(
+ "Unsupported implementation class for Member, " +
member.getClass());
+ }
+ /*end[AOP]*/
+ /*if[NO_AOP]
+ return "<NO_MEMBER_KEY>";
+ end[NO_AOP]*/
+ }
+
private class LineNumberReader implements ClassVisitor, MethodVisitor,
AnnotationVisitor {
private int line = -1;
--
You received this message because you are subscribed to the Google Groups
"google-guice-dev" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-guice-dev?hl=en.