package com.googlecode.gentyref;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Type;

class GenTyRefReflectionStrategy extends AbstractReflectionStrategy {
	public boolean isSupertype(Type superType, Type subType) {
		return GenericTypeReflector.isSuperType(superType, subType);
	}

	protected Type getExactSuperType(Type type, Class<?> searchClass) {
		return GenericTypeReflector.getExactSuperType(type, searchClass);
	}

	public Type getReturnType(Type type, Method m) {
		return GenericTypeReflector.getExactReturnType(m, type);
	}

	public Type getFieldType(Type type, Field f) {
		return GenericTypeReflector.getExactFieldType(f, type);
	}
}
@@ -124,16 +124,48 @@
 .Type;%0A%0A
+import junit.framework.Assert;%0A%0A
 class Ge
@@ -418,24 +418,340 @@
 rchClass) %7B%0A
+%09%09Type result = GenericTypeReflector.getExactSuperType(type, searchClass);%0A%09%09%0A%09%09// sanity check: erase(result) == searchClass and result is a supertype of type %0A%09%09if (result != null) %7B%0A%09%09%09Assert.assertEquals(searchClass, GenericTypeReflector.erase(result));%0A%09%09%09GenericTypeReflector.isSuperType(result, type);%0A%09%09%7D%0A%09%09%0A
 %09%09return Gen

Add sanity check that new description of getSuperType as suggested in Issue #8 is indeed how it behaves