issue 531 -- don't let c.g.i.internal.util reference outside its package.
git-svn-id: https://google-guice.googlecode.com/svn/trunk@1328 d779f126-a31b-0410-b53b-1d3aecad763e
diff --git a/core/src/com/google/inject/internal/Errors.java b/core/src/com/google/inject/internal/Errors.java
index d7aeb4a..052811c 100644
--- a/core/src/com/google/inject/internal/Errors.java
+++ b/core/src/com/google/inject/internal/Errors.java
@@ -24,6 +24,7 @@
import com.google.inject.ProvisionException;
import com.google.inject.Scope;
import com.google.inject.TypeLiteral;
+import com.google.inject.internal.util.Classes;
import com.google.inject.internal.util.ImmutableList;
import com.google.inject.internal.util.ImmutableSet;
import com.google.inject.internal.util.Lists;
@@ -626,7 +627,7 @@
},
new Converter<Member>(Member.class) {
public String toString(Member member) {
- return MoreTypes.toString(member);
+ return Classes.toString(member);
}
},
new Converter<Key>(Key.class) {
@@ -683,7 +684,7 @@
public static void formatInjectionPoint(Formatter formatter, Dependency<?> dependency,
InjectionPoint injectionPoint) {
Member member = injectionPoint.getMember();
- Class<? extends Member> memberType = MoreTypes.memberType(member);
+ Class<? extends Member> memberType = Classes.memberType(member);
if (memberType == Field.class) {
dependency = injectionPoint.getDependencies().get(0);
diff --git a/core/src/com/google/inject/internal/MoreTypes.java b/core/src/com/google/inject/internal/MoreTypes.java
index d2cceaa..0fb5740 100644
--- a/core/src/com/google/inject/internal/MoreTypes.java
+++ b/core/src/com/google/inject/internal/MoreTypes.java
@@ -26,12 +26,8 @@
import com.google.inject.util.Types;
import java.io.Serializable;
import java.lang.reflect.Array;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
import java.lang.reflect.GenericArrayType;
import java.lang.reflect.GenericDeclaration;
-import java.lang.reflect.Member;
-import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;
@@ -248,45 +244,6 @@
}
/**
- * Returns {@code Field.class}, {@code Method.class} or {@code Constructor.class}.
- */
- public static Class<? extends Member> memberType(Member member) {
- checkNotNull(member, "member");
-
- if (member instanceof Field) {
- return Field.class;
-
- } else if (member instanceof Method) {
- return Method.class;
-
- } else if (member instanceof Constructor) {
- return Constructor.class;
-
- } else {
- throw new IllegalArgumentException(
- "Unsupported implementation class for Member, " + member.getClass());
- }
- }
-
- /**
- * Formats a member as concise string, such as {@code java.util.ArrayList.size},
- * {@code java.util.ArrayList<init>()} or {@code java.util.List.remove()}.
- */
- public static String toString(Member member) {
- Class<? extends Member> memberType = memberType(member);
-
- if (memberType == Method.class) {
- return member.getDeclaringClass().getName() + "." + member.getName() + "()";
- } else if (memberType == Field.class) {
- return member.getDeclaringClass().getName() + "." + member.getName();
- } else if (memberType == Constructor.class) {
- return member.getDeclaringClass().getName() + ".<init>()";
- } else {
- throw new AssertionError();
- }
- }
-
- /**
* Returns the generic supertype for {@code supertype}. For example, given a class {@code
* IntegerSet}, the result for when supertype is {@code Set.class} is {@code Set<Integer>} and the
* result when the supertype is {@code Collection.class} is {@code Collection<Integer>}.
diff --git a/core/src/com/google/inject/internal/util/Classes.java b/core/src/com/google/inject/internal/util/Classes.java
index d8ec6e1..8cb77ad 100644
--- a/core/src/com/google/inject/internal/util/Classes.java
+++ b/core/src/com/google/inject/internal/util/Classes.java
@@ -16,8 +16,15 @@
package com.google.inject.internal.util;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Member;
+import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
+
/**
* Class utilities.
*/
@@ -32,4 +39,43 @@
int modifiers = clazz.getModifiers();
return !clazz.isInterface() && !Modifier.isAbstract(modifiers);
}
+
+ /**
+ * Formats a member as concise string, such as {@code java.util.ArrayList.size},
+ * {@code java.util.ArrayList<init>()} or {@code java.util.List.remove()}.
+ */
+ public static String toString(Member member) {
+ Class<? extends Member> memberType = Classes.memberType(member);
+
+ if (memberType == Method.class) {
+ return member.getDeclaringClass().getName() + "." + member.getName() + "()";
+ } else if (memberType == Field.class) {
+ return member.getDeclaringClass().getName() + "." + member.getName();
+ } else if (memberType == Constructor.class) {
+ return member.getDeclaringClass().getName() + ".<init>()";
+ } else {
+ throw new AssertionError();
+ }
+ }
+
+ /**
+ * Returns {@code Field.class}, {@code Method.class} or {@code Constructor.class}.
+ */
+ public static Class<? extends Member> memberType(Member member) {
+ checkNotNull(member, "member");
+
+ if (member instanceof Field) {
+ return Field.class;
+
+ } else if (member instanceof Method) {
+ return Method.class;
+
+ } else if (member instanceof Constructor) {
+ return Constructor.class;
+
+ } else {
+ throw new IllegalArgumentException(
+ "Unsupported implementation class for Member, " + member.getClass());
+ }
+ }
}
diff --git a/core/src/com/google/inject/internal/util/StackTraceElements.java b/core/src/com/google/inject/internal/util/StackTraceElements.java
index f96f492..0af1c26 100644
--- a/core/src/com/google/inject/internal/util/StackTraceElements.java
+++ b/core/src/com/google/inject/internal/util/StackTraceElements.java
@@ -16,7 +16,6 @@
package com.google.inject.internal.util;
-import com.google.inject.internal.MoreTypes;
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.lang.reflect.Member;
@@ -61,7 +60,7 @@
int lineNumber = -1;
end[NO_AOP]*/
- Class<? extends Member> memberType = MoreTypes.memberType(member);
+ Class<? extends Member> memberType = Classes.memberType(member);
String memberName = memberType == Constructor.class ? "<init>" : member.getName();
return new StackTraceElement(declaringClass.getName(), memberName, fileName, lineNumber);
}
diff --git a/core/src/com/google/inject/spi/InjectionPoint.java b/core/src/com/google/inject/spi/InjectionPoint.java
index b147a3b..81e2132 100644
--- a/core/src/com/google/inject/spi/InjectionPoint.java
+++ b/core/src/com/google/inject/spi/InjectionPoint.java
@@ -23,9 +23,9 @@
import com.google.inject.internal.Annotations;
import com.google.inject.internal.Errors;
import com.google.inject.internal.ErrorsException;
-import com.google.inject.internal.MoreTypes;
import static com.google.inject.internal.MoreTypes.getRawType;
import com.google.inject.internal.Nullability;
+import com.google.inject.internal.util.Classes;
import com.google.inject.internal.util.ImmutableList;
import com.google.inject.internal.util.ImmutableSet;
import com.google.inject.internal.util.Lists;
@@ -191,7 +191,7 @@
}
@Override public String toString() {
- return MoreTypes.toString(member);
+ return Classes.toString(member);
}
/**
diff --git a/extensions/throwingproviders/test/com/google/inject/throwingproviders/ThrowingProviderBinderTest.java b/extensions/throwingproviders/test/com/google/inject/throwingproviders/ThrowingProviderBinderTest.java
index 6bb1f88..e3fc56f 100644
--- a/extensions/throwingproviders/test/com/google/inject/throwingproviders/ThrowingProviderBinderTest.java
+++ b/extensions/throwingproviders/test/com/google/inject/throwingproviders/ThrowingProviderBinderTest.java
@@ -24,7 +24,7 @@
import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.TypeLiteral;
-import com.google.inject.internal.MoreTypes;
+import com.google.inject.internal.util.Classes;
import com.google.inject.internal.util.Function;
import com.google.inject.internal.util.ImmutableList;
import com.google.inject.internal.util.ImmutableSet;
@@ -729,7 +729,7 @@
fail();
} catch(CreationException ce) {
assertEquals(OneNoneGetMethod.class.getName()
- + " may not declare any new methods, but declared " + MoreTypes.toString(OneNoneGetMethod.class.getDeclaredMethods()[0]),
+ + " may not declare any new methods, but declared " + Classes.toString(OneNoneGetMethod.class.getDeclaredMethods()[0]),
Iterables.getOnlyElement(ce.getErrorMessages()).getMessage());
}
}