private void printDtoTypeVariables(Set<? extends MutableTypeMirror> types, ExecutableElement localMethod, ConverterProviderElementPrinter nestedPrinter) { for (MutableTypeMirror type: types) { DtoType dtoType = processingEnv.getTransferObjectUtils().getDtoType(type); if (dtoType.getKind().isDeclared() && dtoType.getConverter() != null) { ServiceConverterProviderPrinterContext context = new ServiceConverterProviderPrinterContext((DtoDeclaredType)dtoType, localMethod, dtoType.getConverter().getConfiguration()); nestedPrinter.print(context); } } }
DtoType returnDtoType = processingEnv.getTransferObjectUtils().getDtoType(remoteMethod.getReturnType()); if (returnDtoType.getConverter() != null) { DomainDeclaredType rawDomain = (DomainDeclaredType)returnDtoType.getDomain(); DtoDeclaredType rawDto = returnDtoType.getConverter().getConfiguration().getRawDto(); nestedPrinter.print(new ServiceConverterProviderPrinterContext(rawDto, localMethod, returnDtoType.getConverter().getConfiguration())); TypeMirror dtoType = remoteMethod.getParameters().get(i).asType(); DtoType parameterDtoType = processingEnv.getTransferObjectUtils().getDtoType(dtoType); if (parameterDtoType.getConverter() != null) { DomainDeclaredType rawDomain = parameterDtoType.getConverter().getConfiguration().getRawDomain(); nestedPrinter.print(new ServiceConverterProviderPrinterContext(rawDomain, localMethod));
private void collectTypeConverters(MutableTypeMirror type, Set<ConverterTypeElement> converters, List<ConverterConstructorParameter> parameters) { DtoType dtoType = processingEnv.getTransferObjectUtils().getDtoType(type); ConverterTypeElement converter = dtoType.getConverter(); if (converter != null && !converters.contains(converter)) { parameters.addAll(converter.getConverterParameters(parametersResolverProvider.getParameterResolver(UsageType.DEFINITION), ConverterInstancerType.SERVICE_CONVERETR_INSTANCER)); converters.add(converter); if (dtoType.getKind().equals(MutableTypeKind.CLASS) || dtoType.getKind().equals(MutableTypeKind.INTERFACE)) { for (MutableTypeVariable typeVariable: ((MutableDeclaredType)dtoType).getTypeVariables()) { for (MutableTypeMirror lowerBound: typeVariable.getLowerBounds()) { collectTypeConverters(lowerBound, converters, parameters); } for (MutableTypeMirror upperBound: typeVariable.getUpperBounds()) { collectTypeConverters(upperBound, converters, parameters); } } } } }
@Override protected void printType(MutableTypeMirror type, ConverterProviderPrinterContext context) { DtoType dtoType = processingEnv.getTransferObjectUtils().getDtoType(type); if (dtoType.getKind().isDeclared() && dtoType.getConverter() != null) { print(new ServiceConverterProviderPrinterContext((DtoDeclaredType)dtoType, ((ServiceConverterProviderPrinterContext)context).getLocalMethod(), context.getConfigurationType())); } }
if (returnDtoType.getConverter() != null) { hasConverter = true; DtoType parameterDtoType = processingEnv.getTransferObjectUtils().getDtoType(dtoType); if (parameterDtoType.getConverter() != null) { hasConverter = true; break; ProcessorUtils.stripTypeParametersTypes(processingEnv.getTypeUtils().toMutableType(domainType)), localMethod); if (parameterDtoType.getConverter() != null || !remoteParameterType.isSameType(localParameterType)) { pw.print("(", parameterDomainType, ")"); if (parameterDtoType.getConverter() != null || !remoteParameterType.isSameType(localParameterType)) { pw.print("))"); pw.println(";"); boolean shouldBeConverted = !remoteMethod.getReturnType().getKind().equals(TypeKind.VOID) && returnDtoType.getConverter() != null; if (!shouldBeConverted && !remoteMethod.getReturnType().getKind().equals(TypeKind.VOID) && returnDtoType.getConverter() == null) {
ConverterTypeElement idConverter = dtoIdType.getConverter();