public MutableDeclaredType applyVariableTypeParameters(MutableDeclaredType type, DeclaredType declaredType) { if (declaredType.getTypeArguments() != null && declaredType.getTypeArguments().size() > 0) { MutableTypeVariable[] variables = new MutableTypeVariable[declaredType.getTypeArguments().size()]; int i = 0; for (TypeMirror typeParameterElement: declaredType.getTypeArguments()) { if (typeParameterElement.getKind().equals(TypeKind.TYPEVAR)) { variables[i] = processingEnv.getTypeUtils().getTypeVariable(typeParameterElement.toString()); } else { variables[i] = processingEnv.getTypeUtils().getWildcardType((MutableTypeMirror)null, null); } i++; } return processingEnv.getTypeUtils().getDeclaredType(type, variables); } return type; }
protected MutableTypeMirror getWildcardDelegate(MutableTypeMirror domainDelegate) { if (domainDelegate.getKind().isDeclared() && ((MutableDeclaredType)domainDelegate).getTypeVariables().size() == 1) { return ((MutableDeclaredType)domainDelegate).clone().setTypeVariables(processingEnv.getTypeUtils().getWildcardType((MutableTypeMirror)null, (MutableTypeMirror)null)); } return domainDelegate; }
arguments.add(processingEnv.getTypeUtils().getWildcardType(castToDomainDataInterface(wildcardType.getExtendsBound()), castToDomainDataInterface(wildcardType.getSuperBound()))); break; case DECLARED:
WildcardType wildcardType = (WildcardType)typeMirror; return getWildcardType(toMutableType(wildcardType.getExtendsBound()), toMutableType(wildcardType.getSuperBound()));
return getWildcardType( fromMutableType(((MutableWildcardType)type).getExtendsBound()), fromMutableType(((MutableWildcardType)type).getSuperBound()));
List<MutableWildcardType> wildcardType = new ArrayList<MutableWildcardType>(); for (int i = 0; i < mutableDataInterface.getTypeVariables().size(); i++) { wildcardType.add(processingEnv.getTypeUtils().getWildcardType((MutableTypeMirror)null, null));
@Override public void print(DaoContext context) { MutableDeclaredType declaredType = context.getProcessingEnv().getTypeUtils().toMutableType(Class.class); declaredType.setTypeVariables(context.getProcessingEnv().getTypeUtils().getWildcardType(context.getDomainType(), null)); pw.println("public ", context.getDaoType(), "() {"); pw.println("super(", context.getDomainType(), ".class);"); pw.println("}"); pw.println(); pw.println("public ", context.getDaoType(), "(", declaredType , " clazz) {"); pw.println("super(clazz);"); pw.println("}"); } }