private boolean isReified(TypeVariableInfo typeVar, MethodInfo method) { if (typeVar.isClassParam()) { return true; } else { TypeArgExpression typeArg = method.resolveTypeArg(typeVar); return typeArg != null && typeArg.isClassType(); } }
private boolean isReified(TypeVariableInfo typeVar, MethodInfo method) { if (typeVar.isClassParam()) { return true; } else { TypeArgExpression typeArg = method.resolveTypeArg(typeVar); return typeArg != null && typeArg.isClassType(); } }
if (unwrappedType.isVariable()) { TypeVariableInfo type = (TypeVariableInfo) unwrappedType; if (type.isClassParam()) { writer.format("j_%s.unwrap(%s)", unwrappedType.getName(), unwrappedName); } else {
private String genTypeArg(TypeVariableInfo typeVar, MethodInfo method) { if (typeVar.isClassParam()) { return "__typeArg_" + typeVar.getParam().getIndex(); } else { TypeArgExpression typeArg = method.resolveTypeArg(typeVar); if (typeArg != null) { if (typeArg.isClassType()) { return "io.vertx.lang.rx.TypeArg.of(" + typeArg.getParam().getName() + ")"; } else { return typeArg.getParam().getName() + ".__typeArg_" + typeArg.getIndex(); } } } return null; }
private String genTypeArg(TypeVariableInfo typeVar, MethodInfo method) { if (typeVar.isClassParam()) { return "__typeArg_" + typeVar.getParam().getIndex(); } else { TypeArgExpression typeArg = method.resolveTypeArg(typeVar); if (typeArg != null) { if (typeArg.isClassType()) { return "io.vertx.lang.rx.TypeArg.of(" + typeArg.getParam().getName() + ")"; } else { return typeArg.getParam().getName() + ".__typeArg_" + typeArg.getIndex(); } } } return null; }
@Test public void testParameterizedVariableSuperType() throws Exception { ClassModel model = new GeneratorHelper().generateClass(InterfaceWithParameterizedVariableSupertype.class); assertEquals(InterfaceWithParameterizedVariableSupertype.class.getName() + "<T>", model.getIfaceFQCN()); assertEquals(InterfaceWithParameterizedVariableSupertype.class.getSimpleName(), model.getIfaceSimpleName()); assertEquals(1, model.getReferencedTypes().size()); assertTrue(model.getReferencedTypes().contains(GenericInterfaceInfo)); assertEquals(1, model.getSuperTypes().size()); assertTrue(model.getSuperTypes().contains(TypeReflectionFactory.create(InterfaceWithParameterizedVariableSupertype.class.getGenericInterfaces()[0]))); List<TypeInfo> superTypeArgs = model.getSuperTypeArguments(); assertEquals(1, superTypeArgs.size()); TypeVariableInfo superTypeArg = (TypeVariableInfo) superTypeArgs.get(0); assertEquals("T", superTypeArg.getName()); assertTrue(superTypeArg.isClassParam()); }
assertTrue(params1.get(0).getType() instanceof TypeVariableInfo); assertEquals(t, ((TypeVariableInfo)params1.get(0).getType()).getParam()); assertTrue(((TypeVariableInfo)params1.get(0).getType()).isClassParam()); assertFalse(((TypeVariableInfo)params1.get(0).getType()).isMethodParam()); assertNull(methods.get(0).resolveClassTypeParam((TypeVariableInfo) params1.get(0).getType())); assertTrue(params2.get(0).getType() instanceof TypeVariableInfo); assertEquals(methods.get(1).getTypeParams().get(0), ((TypeVariableInfo) params2.get(0).getType()).getParam()); assertFalse(((TypeVariableInfo) params2.get(0).getType()).isClassParam()); assertTrue(((TypeVariableInfo) params2.get(0).getType()).isMethodParam()); assertNull(methods.get(1).resolveClassTypeParam((TypeVariableInfo) params2.get(0).getType()));
if (param.getType().isVariable() && ((TypeVariableInfo) param.getType()).isClassParam()) { writer.format("j_%s.accept(__args[%s])", param.getType().getName(), cnt); } else {