New org.apache.juneau.reflection package.
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/reflection/ClassInfoTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/reflection/ClassInfoTest.java
index faa07dd..b7d5514 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/reflection/ClassInfoTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/reflection/ClassInfoTest.java
@@ -26,7 +26,7 @@
 	@Test
 	public void getParentMethodsParentFirst() throws Exception {
 		Set<String> s = new TreeSet<>();
-		ClassInfo ci = ClassInfo.create(DD.class);
+		ClassInfo ci = ClassInfo.of(DD.class);
 		for (MethodInfo m : ci.getAllMethodsParentFirst())
 			if (! m.getName().startsWith("$"))
 				s.add(m.getDeclaringClass().getSimpleName() + '.' + m.getName());
@@ -69,7 +69,7 @@
 	@Test
 	public void getParentFieldsParentFirst() throws Exception {
 		Set<String> s = new TreeSet<>();
-		ClassInfo ci = ClassInfo.create(EB.class);
+		ClassInfo ci = ClassInfo.of(EB.class);
 		for (FieldInfo f : ci.getAllFieldsParentFirst()) {
 			if (! f.getName().startsWith("$"))
 				s.add(f.getDeclaringClass().getSimpleName() + '.' + f.getName());
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/reflection/MethodInfoTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/reflection/MethodInfoTest.java
index 62e9428..ab26bf7 100644
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/reflection/MethodInfoTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/reflection/MethodInfoTest.java
@@ -27,10 +27,10 @@
 	//====================================================================================================
 	@Test
 	public void getMethodAnnotations() throws Exception {
-		assertEquals("a1", MethodInfo.create(CI3.class.getMethod("a1")).getAnnotation(TestAnnotation.class).value());
-		assertEquals("a2b", MethodInfo.create(CI3.class.getMethod("a2")).getAnnotation(TestAnnotation.class).value());
-		assertEquals("a3", MethodInfo.create(CI3.class.getMethod("a3", CharSequence.class)).getAnnotation(TestAnnotation.class).value());
-		assertEquals("a4", MethodInfo.create(CI3.class.getMethod("a4")).getAnnotation(TestAnnotation.class).value());
+		assertEquals("a1", MethodInfo.of(CI3.class.getMethod("a1")).getAnnotation(TestAnnotation.class).value());
+		assertEquals("a2b", MethodInfo.of(CI3.class.getMethod("a2")).getAnnotation(TestAnnotation.class).value());
+		assertEquals("a3", MethodInfo.of(CI3.class.getMethod("a3", CharSequence.class)).getAnnotation(TestAnnotation.class).value());
+		assertEquals("a4", MethodInfo.of(CI3.class.getMethod("a4")).getAnnotation(TestAnnotation.class).value());
 	}
 
 	public static interface CI1 {
diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/ClassUtilsTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/ClassUtilsTest.java
index f04fe7a..02db82b 100755
--- a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/ClassUtilsTest.java
+++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/utils/ClassUtilsTest.java
@@ -261,7 +261,7 @@
 	@Test

 	public void getAnnotationsOnParameter() throws Exception {

 		ObjectList l = new ObjectList();

-		MethodParamInfo mpi = MethodInfo.create(HA.class.getMethod("doX", HA01.class)).getParam(0);

+		MethodParamInfo mpi = MethodInfo.of(HA.class.getMethod("doX", HA01.class)).getParam(0);

 		for (HI1 ia : mpi.getAnnotations(HI1.class)) {

 			l.add(ia.value());

 		}

@@ -287,7 +287,7 @@
 	@Test

 	public void getAnnotationsOnParameterInherited() throws Exception {

 		ObjectList l = new ObjectList();

-		MethodParamInfo mpi = MethodInfo.create(HB.class.getMethod("doX", HB01.class)).getParam(0);

+		MethodParamInfo mpi = MethodInfo.of(HB.class.getMethod("doX", HB01.class)).getParam(0);

 		for (HI2 ib : mpi.getAnnotations(HI2.class)) {

 			l.add(ib.value());

 		}

@@ -320,7 +320,7 @@
 

 	@Test

 	public void findMatchingMethods() throws Exception {

-		MethodInfo mi = MethodInfo.create(I3.class.getMethod("foo", int.class));

+		MethodInfo mi = MethodInfo.of(I3.class.getMethod("foo", int.class));

 		assertObjectEquals("['public int org.apache.juneau.utils.ClassUtilsTest$I3.foo(int)','public int org.apache.juneau.utils.ClassUtilsTest$I2.foo(int)','public abstract int org.apache.juneau.utils.ClassUtilsTest$I1.foo(int)']", mi.getMatching());

 	}

 

diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index 049d9a2..1b79746 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -2019,11 +2019,11 @@
 			if (o instanceof Class) {
 				ClassInfo ci = getClassInfo((Class<?>)o);
 				if (ci.isChildOf(PojoSwap.class))
-					lpf.add(newInstance(PojoSwap.class, ci.getInnerClass()));
+					lpf.add(newInstance(PojoSwap.class, ci.inner()));
 				else if (ci.isChildOf(Surrogate.class))
-					lpf.addAll(SurrogateSwap.findPojoSwaps(ci.getInnerClass()));
+					lpf.addAll(SurrogateSwap.findPojoSwaps(ci.inner()));
 				else
-					throw new FormattedRuntimeException("Invalid class {0} specified in BeanContext.pojoSwaps property.  Must be a subclass of PojoSwap or Surrogate.", ci.getInnerClass());
+					throw new FormattedRuntimeException("Invalid class {0} specified in BeanContext.pojoSwaps property.  Must be a subclass of PojoSwap or Surrogate.", ci.inner());
 			} else if (o instanceof PojoSwap) {
 				lpf.add((PojoSwap)o);
 			}
@@ -2674,11 +2674,11 @@
 		while (cc != null) {
 			ClassInfo implClass = implClasses.get(cc.getName());
 			if (implClass != null)
-				return (Class<T>) implClass.getInner();
+				return (Class<T>) implClass.inner();
 			for (Class ic : cc.getInterfaces()) {
 				implClass = implClasses.get(ic.getName());
 				if (implClass != null)
-					return (Class<T>) implClass.getInner();
+					return (Class<T>) implClass.inner();
 			}
 			cc = cc.getSuperclass();
 		}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
index 0a758a4..b3cc126 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
@@ -287,7 +287,7 @@
 				return false;

 

 			if (typeMeta == null)

-				typeMeta = (swap != null ? beanContext.getClassMeta(swap.getSwapClass().getInner()) : rawTypeMeta == null ? beanContext.object() : rawTypeMeta);

+				typeMeta = (swap != null ? beanContext.getClassMeta(swap.getSwapClass().innerType()) : rawTypeMeta == null ? beanContext.object() : rawTypeMeta);

 			if (typeMeta == null)

 				typeMeta = rawTypeMeta;

 

diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
index fd14217..8caafce 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
@@ -496,7 +496,7 @@
 			for (MethodInfo m : ci.getPublicMethods()) {

 				if (m.isAll(PUBLIC, NOT_DEPRECATED, NOT_STATIC) && m.hasName("swap") && m.hasFuzzyArgs(BeanSession.class)) {

 					swapMethod = m.getInner();

-					swapMethodType = m.getReturnType().getInnerClass();

+					swapMethodType = m.getReturnType().inner();

 					break;

 				}

 			}

@@ -535,7 +535,7 @@
 

 			for (FieldInfo f : ci.getDeclaredFields()) {

 				if (f.isAnnotationPresent(Example.class)) {

-					if (! (f.isStatic() && ci.isParentOf(f.getType().getInner())))

+					if (! (f.isStatic() && ci.isParentOf(f.getType().inner())))

 						throw new ClassMetaRuntimeException("@Example used on invalid field ''{0}''.  Must be static and an instance of the type.", f);

 					f.setAccessible(false);

 					exampleField = f.getInner();

@@ -560,7 +560,7 @@
 

 			for (MethodInfo m : ci.getDeclaredMethods()) {

 				if (m.isAnnotationPresent(Example.class)) {

-					if (! (m.isStatic() && m.hasFuzzyArgs(BeanSession.class) && ci.isParentOf(m.getReturnType().getInner())))

+					if (! (m.isStatic() && m.hasFuzzyArgs(BeanSession.class) && ci.isParentOf(m.getReturnType().inner())))

 						throw new ClassMetaRuntimeException("@Example used on invalid method ''{0}''.  Must be static and return an instance of the declaring class.", m);

 					m.setAccessible();

 					exampleMethod = m.getInner();

@@ -800,7 +800,7 @@
 			Class<?> c = s.value();

 			if (c == Null.class)

 				c = s.impl();

-			ClassInfo ci = ClassInfo.create(c);

+			ClassInfo ci = ClassInfo.of(c);

 

 			if (ci.isChildOf(PojoSwap.class)) {

 				PojoSwap ps = beanContext.newInstance(PojoSwap.class, c);

diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/Utils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/Utils.java
index 7367c5c..35e6be6 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/Utils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/bean/Utils.java
@@ -29,14 +29,14 @@
 
 	static void assertReturnNotVoid(MethodInfo m, Class<?> a) throws InvalidAnnotationException {
 		ClassInfo rt = m.getReturnType();
-		if (rt.getInner() == void.class)
+		if (rt.is(void.class))
 			throw new InvalidAnnotationException("Invalid return type for method with annotation @{0}.  Method=''{1}''", a.getSimpleName(), m);
 	}
 
 	static void assertReturnType(MethodInfo m, Class<? extends Annotation> a, Class<?>...c) throws InvalidAnnotationException {
 		ClassInfo rt = m.getReturnType();
 		for (Class<?> cc : c)
-			if (rt.getInner() == cc)
+			if (rt.is(cc))
 				return;
 		throw new InvalidAnnotationException("Invalid return type for method with annotation @{0}.  Method=''{1}''", a.getSimpleName(), m);
 	}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java
index 027ccb0..2229c95 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/ClassUtils.java
@@ -29,53 +29,53 @@
 public final class ClassUtils {

 

 	/**

-	 * Shortcut for calling {@link ClassInfo#create(Type)}.

+	 * Shortcut for calling {@link ClassInfo#of(Type)}.

 	 *

 	 * @param t The class being wrapped.

 	 * @return The wrapped class.

 	 */

 	public static ClassInfo getClassInfo(Type t) {

-		return ClassInfo.create(t);

+		return ClassInfo.of(t);

 	}

 

 	/**

-	 * Shortcut for calling {@link ClassInfo#create(Object)}.

+	 * Shortcut for calling {@link ClassInfo#of(Object)}.

 	 *

 	 * @param o The object whose class being wrapped.

 	 * @return The wrapped class.

 	 */

 	public static ClassInfo getClassInfo(Object o) {

-		return ClassInfo.create(o);

+		return ClassInfo.of(o);

 	}

 

 	/**

-	 * Shortcut for calling {@link MethodInfo#create(Method)}.

+	 * Shortcut for calling {@link MethodInfo#of(Method)}.

 	 *

 	 * @param m The method being wrapped.

 	 * @return The wrapped method.

 	 */

 	public static MethodInfo getMethodInfo(Method m) {

-		return MethodInfo.create(m);

+		return MethodInfo.of(m);

 	}

 

 	/**

-	 * Shortcut for calling {@link FieldInfo#create(Field)}.

+	 * Shortcut for calling {@link FieldInfo#of(Field)}.

 	 *

 	 * @param f The field being wrapped.

 	 * @return The wrapped field.

 	 */

 	public static FieldInfo getFieldInfo(Field f) {

-		return FieldInfo.create(f);

+		return FieldInfo.of(f);

 	}

 

 	/**

-	 * Shortcut for calling {@link ConstructorInfo#create(Constructor)}.

+	 * Shortcut for calling {@link ConstructorInfo#of(Constructor)}.

 	 *

 	 * @param c The constructor being wrapped.

 	 * @return The wrapped constructor.

 	 */

 	public static ConstructorInfo getConstructorInfo(Constructor<?> c) {

-		return ConstructorInfo.create(c);

+		return ConstructorInfo.of(c);

 	}

 

 	/**

diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/TransformCache.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/TransformCache.java
index 63f6cb0..211e7fb 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/TransformCache.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/TransformCache.java
@@ -122,9 +122,9 @@
 		ClassInfo ici = ClassInfo.lookup(ic), oci = ClassInfo.lookup(oc);
 
 		for (ClassInfo pic : ici.getParentClassesAndInterfaces()) {
-			t = m.get(pic.getInnerClass());
+			t = m.get(pic.inner());
 			if (t != null) {
-				m.put(pic.getInnerClass(), t);
+				m.put(pic.inner(), t);
 				return t == NULL ? null : t;
 			}
 		}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflection/ClassInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflection/ClassInfo.java
index 5ee03fa..fa46631 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflection/ClassInfo.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflection/ClassInfo.java
@@ -60,7 +60,7 @@
 	 * @param t The class type.
 	 * @return The constructed class info.
 	 */
-	public static ClassInfo create(Type t) {
+	public static ClassInfo of(Type t) {
 		if (t == null)
 			return null;
 		return new ClassInfo(t);
@@ -72,7 +72,7 @@
 	 * @param o The class instance.
 	 * @return The constructed class info.
 	 */
-	public static ClassInfo create(Object o) {
+	public static ClassInfo of(Object o) {
 		if (o == null)
 			return null;
 		return new ClassInfo(o.getClass());
@@ -89,7 +89,7 @@
 			return null;
 		ClassInfo ci = CACHE.get(t);
 		if (ci == null) {
-			ci = create(t);
+			ci = of(t);
 			CACHE.put(t, ci);
 		}
 		return ci;
@@ -100,7 +100,7 @@
 	 *
 	 * @return The wrapped class.
 	 */
-	public Type getInner() {
+	public Type innerType() {
 		return type;
 	}
 
@@ -109,7 +109,7 @@
 	 *
 	 * @return The wrapped class or <jk>null</jk> if it's not a class.
 	 */
-	public Class<?> getInnerClass() {
+	public Class<?> inner() {
 		return c;
 	}
 
@@ -120,7 +120,7 @@
 	 */
 	public synchronized ClassInfo getParent() {
 		if (parent == null)
-			parent = Optional.ofNullable(c == null ? null : create(c.getSuperclass()));
+			parent = Optional.ofNullable(c == null ? null : of(c.getSuperclass()));
 		return parent.isPresent() ? parent.get() : null;
 	}
 
@@ -133,7 +133,7 @@
 		if (interfaces == null) {
 			interfaces = new ClassInfo[c == null ? 0 : c.getInterfaces().length];
 			for (int i = 0; i < interfaces.length; i++)
-				interfaces[i] = ClassInfo.create(c.getInterfaces()[i]);
+				interfaces[i] = ClassInfo.of(c.getInterfaces()[i]);
 		}
 		return interfaces;
 	}
@@ -284,14 +284,14 @@
 	private List<MethodInfo> findDeclaredMethods() {
 		List<MethodInfo> l = new ArrayList<>(c.getDeclaredMethods().length);
 		for (Method m : sort(c.getDeclaredMethods()))
-			l.add(MethodInfo.create(this, m));
+			l.add(MethodInfo.of(this, m));
 		return l;
 	}
 
 	private List<MethodInfo> findPublicMethods() {
 		List<MethodInfo> l = new ArrayList<>(c.getMethods().length);
 		for (Method m : c.getMethods())
-			l.add(MethodInfo.create(this, m));
+			l.add(MethodInfo.of(this, m));
 		return l;
 	}
 
@@ -401,7 +401,7 @@
 	private List<ConstructorInfo> findConstructors() {
 		List<ConstructorInfo> l = new ArrayList<>(c.getConstructors().length);
 		for (Constructor<?> cc : c.getConstructors())
-			l.add(ConstructorInfo.create(this, cc));
+			l.add(ConstructorInfo.of(this, cc));
 		return Collections.unmodifiableList(l);
 	}
 
@@ -467,7 +467,7 @@
 	private List<FieldInfo> findDeclaredFields() {
 		List<FieldInfo> l = new ArrayList<>(c.getDeclaredFields().length);
 		for (Field f : sort(c.getDeclaredFields()))
-			l.add(FieldInfo.create(this, f));
+			l.add(FieldInfo.of(this, f));
 		return l;
 	}
 
@@ -1080,7 +1080,7 @@
 	public ClassInfo getWrapperInfoIfPrimitive() {
 		if (! c.isPrimitive())
 			return this;
-		return create(pmap1.get(c));
+		return of(pmap1.get(c));
 	}
 
 	/**
@@ -1211,4 +1211,13 @@
 	public Object newInstance() throws InstantiationException, IllegalAccessException {
 		return c.newInstance();
 	}
+
+	/**
+	 * Returns <jk>true</jk> if this class is an interface.
+	 *
+	 * @return <jk>true</jk> if this class is an interface.
+	 */
+	public boolean isInterface() {
+		return c.isInterface();
+	}
 }
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflection/ConstructorInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflection/ConstructorInfo.java
index 9bc83cb..33ed81f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflection/ConstructorInfo.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflection/ConstructorInfo.java
@@ -59,7 +59,7 @@
 	 * @param c The constructor being wrapped.
 	 * @return A new {@link ConstructorInfo} object, or <jk>null</jk> if the method was null;
 	 */
-	public static ConstructorInfo create(ClassInfo declaringClass, Constructor<?> c) {
+	public static ConstructorInfo of(ClassInfo declaringClass, Constructor<?> c) {
 		if (c == null)
 			return null;
 		return new ConstructorInfo(declaringClass, c);
@@ -71,7 +71,7 @@
 	 * @param c The constructor being wrapped.
 	 * @return A new {@link ConstructorInfo} object, or <jk>null</jk> if the method was null;
 	 */
-	public static ConstructorInfo create(Constructor<?> c) {
+	public static ConstructorInfo of(Constructor<?> c) {
 		if (c == null)
 			return null;
 		return new ConstructorInfo(ClassInfo.lookup(c.getDeclaringClass()), c);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflection/FieldInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflection/FieldInfo.java
index 0bd4ae9..2227bf1 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflection/FieldInfo.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflection/FieldInfo.java
@@ -55,7 +55,7 @@
 	 * @param f The field being wrapped.
 	 * @return A new {@link FieldInfo} object, or <jk>null</jk> if the field was null.
 	 */
-	public static FieldInfo create(ClassInfo declaringClass, Field f) {
+	public static FieldInfo of(ClassInfo declaringClass, Field f) {
 		if (f == null)
 			return null;
 		return new FieldInfo(declaringClass, f);
@@ -67,7 +67,7 @@
 	 * @param f The field being wrapped.
 	 * @return A new {@link FieldInfo} object, or <jk>null</jk> if the field was null.
 	 */
-	public static FieldInfo create(Field f) {
+	public static FieldInfo of(Field f) {
 		if (f == null)
 			return null;
 		return new FieldInfo(null, f);
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflection/MethodInfo.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflection/MethodInfo.java
index ef2e34a..5b83e0e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflection/MethodInfo.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/reflection/MethodInfo.java
@@ -71,7 +71,7 @@
 	 * @param m The method being wrapped.
 	 * @return A new {@link MethodInfo} object, or <jk>null</jk> if the method was null;
 	 */
-	public static MethodInfo create(ClassInfo declaringClass, Method m) {
+	public static MethodInfo of(ClassInfo declaringClass, Method m) {
 		if (m == null)
 			return null;
 		return new MethodInfo(declaringClass, m);
@@ -83,7 +83,7 @@
 	 * @param m The method being wrapped.
 	 * @return A new {@link MethodInfo} object, or <jk>null</jk> if the method was null;
 	 */
-	public static MethodInfo create(Method m) {
+	public static MethodInfo of(Method m) {
 		if (m == null)
 			return null;
 		return new MethodInfo(ClassInfo.lookup(m.getDeclaringClass()), m);
@@ -606,7 +606,7 @@
 	 * @return <jk>true</jk> if this method has this parent return type.
 	 */
 	public boolean hasReturnTypeParent(Class<?> c) {
-		return ClassInfo.create(c).isParentOf(m.getReturnType());
+		return ClassInfo.of(c).isParentOf(m.getReturnType());
 	}
 
 	/**
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BuilderSwap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BuilderSwap.java
index 3b73538..e8d9604 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BuilderSwap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BuilderSwap.java
@@ -147,7 +147,7 @@
 

 		createPojoMethod = bci.findCreatePojoMethod();

 		if (createPojoMethod != null)

-			pojoClass = createPojoMethod.getReturnType().getInnerClass();

+			pojoClass = createPojoMethod.getReturnType().inner();

 

 		if (pojoClass == null)

 			return null;

@@ -192,7 +192,7 @@
 		builderCreateMethod = pci.findBuilderCreateMethod();

 

 		if (builderClass == null && builderCreateMethod != null)

-			builderClass = builderCreateMethod.getReturnType().getInnerClass();

+			builderClass = builderCreateMethod.getReturnType().inner();

 

 		if (builderClass == null) {

 			for (ConstructorInfo cc : pci.getPublicConstructors()) {

diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/SurrogateSwap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/SurrogateSwap.java
index 4f3775f..042ebe4 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/SurrogateSwap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/SurrogateSwap.java
@@ -65,7 +65,7 @@
 				// Find the unswap method if there is one.

 				Method unswapMethod = null;

 				for (MethodInfo m : ci.getPublicMethods()) {

-					if (pt[0].equals(m.getReturnType().getInner()) && m.isPublic())

+					if (m.getReturnType().is(pt[0]) && m.isPublic())

 					unswapMethod = m.getInner();

 				}

 

diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCallException.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCallException.java
index 7bec8a4..1290a15 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCallException.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCallException.java
@@ -162,7 +162,7 @@
 			try {

 				ClassInfo t = getClassInfo(cl.loadClass(serverExceptionName));

 				if (t.isChildOf(RuntimeException.class) || t.isChildOf(Error.class))

-					doThrow(t.getInnerClass(), serverExceptionMessage);

+					doThrow(t.inner(), serverExceptionMessage);

 			} catch (ClassNotFoundException e2) { /* Ignore */ }

 		}

 	}

diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteMethodReturn.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteMethodReturn.java
index eb91404..c05cb14 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteMethodReturn.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/remote/RemoteMethodReturn.java
@@ -35,10 +35,9 @@
 
 	RemoteMethodReturn(MethodInfo m) {
 		RemoteMethod rm = m.getAnnotation(RemoteMethod.class);
-		Class<?> rt = m.getReturnType().getInnerClass();
-		RemoteReturn rv = rt == void.class ? RemoteReturn.NONE : rm == null ? RemoteReturn.BODY : rm.returns();
-		ClassInfo rti = ClassInfo.lookup(rt);
-		if (rti.hasAnnotation(Response.class) && rt.isInterface()) {
+		ClassInfo rt = m.getReturnType();
+		RemoteReturn rv = rt.is(void.class) ? RemoteReturn.NONE : rm == null ? RemoteReturn.BODY : rm.returns();
+		if (rt.hasAnnotation(Response.class) && rt.isInterface()) {
 			this.meta = ResponseBeanMeta.create(m, PropertyStore.DEFAULT);
 			rv = RemoteReturn.BEAN;
 		} else {
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/SwaggerGenerator.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/SwaggerGenerator.java
index 44fb7eb..54fa6a3 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/SwaggerGenerator.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/SwaggerGenerator.java
@@ -389,7 +389,7 @@
 							ObjectMap om = responses.getObjectMap(String.valueOf(code), true);
 							merge(om, a);
 							if (! om.containsKey("schema"))
-								om.appendSkipEmpty("schema", getSchema(om.getObjectMap("schema"), eci.getInnerClass()));
+								om.appendSkipEmpty("schema", getSchema(om.getObjectMap("schema"), eci.inner()));
 						}
 					}
 					for (MethodInfo ecmi : eci.getAllMethodsParentFirst()) {