InnerClass extends AbstractJavaType { public void addTypeParameter(TypeParameter typeParameter) { this.typeParameters.add(typeParameter); } InnerClass(FullyQualifiedJavaType type);  InnerClass(String type); Optional<FullyQualifiedJavaType> getSuperClass(); void setSuperClass(FullyQualifiedJavaType superClass); void setSuperClass(String superClassType); List<TypeParameter> getTypeParameters(); void addTypeParameter(TypeParameter typeParameter); List<InitializationBlock> getInitializationBlocks(); void addInitializationBlock(InitializationBlock initializationBlock); boolean isAbstract(); void setAbstract(boolean isAbtract); boolean isFinal(); void setFinal(boolean isFinal);  }
@Test public void testAddTypeParameter() { InnerClass clazz = new InnerClass("com.foo.UserClass"); assertEquals(0, clazz.getTypeParameters().size()); clazz.addTypeParameter(new TypeParameter("T")); assertEquals(1, clazz.getTypeParameters().size()); clazz.addTypeParameter(new TypeParameter("U")); assertEquals(2, clazz.getTypeParameters().size()); }