@Override public String toMethod(ExecutableElement method) { return MethodHelper.toSetter(method); }
private static String toSetterFromSimleName(String simpleName) { if (simpleName.startsWith(GETTER_PREFIX)) { return toSetter(simpleName.substring(GETTER_PREFIX.length())); } if (simpleName.startsWith(GETTER_IS_PREFIX)) { return toSetter(simpleName.substring(GETTER_IS_PREFIX.length())); } return toSetter(simpleName); }
String path = domainPathResolver.next(); method = ProcessorUtils.getMethod(MethodHelper.toSetter(path), typeElement);
String setterMethodName = MethodHelper.toSetter(method);
private boolean hasAbstractMethod(TypeElement processingElement) { List<ExecutableElement> methods = ElementFilter.methodsIn(processingElement.getEnclosedElements()); ElementSorter.sort(methods); for (ExecutableElement method: methods) { if (!MethodHelper.isGetterMethod(method) && !MethodHelper.isSetterMethod(method) && !isObjectMethod(method)) { return true; } if (MethodHelper.isGetterMethod(method) && !ProcessorUtils.hasMethod(MethodHelper.toSetter(method), domainDataType.asElement(), true)) { return true; } } for (TypeMirror interfaceType: processingElement.getInterfaces()) { TypeElement interfaceTypeElement = (TypeElement)((DeclaredType)interfaceType).asElement(); if (hasAbstractMethod(interfaceTypeElement)) { return true; } } return false; } }
} else if (!isDataInterface && !ProcessorUtils.hasMethod(MethodHelper.toSetter(method), owner, true)) {
protected void printDomainInstancer(FormattedPrintWriter pw, DomainDeclaredType domainTypeElement) { if (!entityResolver.shouldHaveIdMethod(domainTypeElement)) { pw.println(" return new ", domainTypeElement, "();"); } else { pw.println(domainTypeElement, " " + RESULT_NAME, " = new ", domainTypeElement, "();"); String setterMethod = MethodHelper.toSetter(domainTypeElement.getIdMethod(entityResolver)); if (ProcessorUtils.hasMethod(setterMethod, domainTypeElement.asElement())) { pw.println(RESULT_NAME + "." + MethodHelper.toSetter(domainTypeElement.getIdMethod(entityResolver)) + "((", domainTypeElement.getId(entityResolver), ")" + "id);"); } else { pw.println("if (id != null) {"); pw.println("throw new ", RuntimeException.class, "(\"Unable to define ID for imutable entity. Please define " + setterMethod + " method for ", domainTypeElement, "!\");"); pw.println("}"); } pw.println("return " + RESULT_NAME + ";"); } } }
protected void printDtoInstancer(FormattedPrintWriter pw, EntityResolver entityResolver, DtoType type) { pw.println(type," " + RESULT + " = new ", type, "();"); if ((type instanceof DtoDeclaredType) && entityResolver.shouldHaveIdMethod((DomainDeclaredType) type.getDomainDefinitionConfiguration().getInstantiableDomain())) { MutableExecutableElement idMethod = ((DtoDeclaredType)type).getIdMethod(entityResolver); pw.println(RESULT + "." + MethodHelper.toSetter(idMethod) + "((", idMethod.asType().getReturnType(), ")id);"); } pw.println("return " + RESULT + ";"); }
@Override public void print(SettingsContext context) { String fieldName = context.getFieldName(); if (context.getNestedElement() != null) { pw.println("public " + context.getNestedMutableType().getSimpleName() + " " + MethodHelper.toGetter(fieldName) + " {"); } else { TypeMirror unboxedReturnType = boxType(context.getMethod().getReturnType()); pw.println("public ", unboxedReturnType, " " + MethodHelper.toGetter(fieldName) + " {"); } pw.println("return " + fieldName + ";"); pw.println("}"); pw.println(""); if (context.getNestedElement() != null) { pw.println("public void " + MethodHelper.toSetter(fieldName) + "(" + context.getNestedMutableType().getSimpleName() + " " + fieldName + ") {"); } else { pw.println("public void " + MethodHelper.toSetter(fieldName) + "(", boxType(context.getMethod().getReturnType()), " " + fieldName + ") {"); } pw.println("this." + fieldName + " = " + fieldName + ";"); pw.println("}"); pw.println(""); }
protected void printCopyByLocalConverter(String localConverterName, PathResolver domainPathResolver, DomainType domainMethodReturnType, String dtoField, FormattedPrintWriter pw) { pw.println("if (" + localConverterName + " != null) {"); pw.print(TransferObjectElementPrinter.RESULT_NAME + "." + MethodHelper.toSetter(domainPathResolver.getPath()) + "(" + localConverterName + ".fromDto(" + TransferObjectElementPrinter.DTO_NAME + "." + MethodHelper.toGetter(dtoField) + ")"); pw.println(");"); pw.println("} else {"); pw.print(TransferObjectElementPrinter.RESULT_NAME + "." + MethodHelper.toSetter(domainPathResolver.getPath())); if (domainMethodReturnType.getKind().equals(MutableTypeKind.TYPEVAR)) { pw.print("((" + ConverterTypeElement.DOMAIN_TYPE_ARGUMENT_PREFIX + "_" + ((MutableTypeVariable) domainMethodReturnType).getVariable() + ")"); } else { pw.print("((" + domainMethodReturnType + ")"); } pw.print(TransferObjectElementPrinter.DTO_NAME + "." + MethodHelper.toGetter(dtoField)); pw.println(");"); pw.println("}"); } }
protected void printCopyByLocalConverter(String domainField, DomainType domainMethodReturnType, String dtoField, FormattedPrintWriter pw) { pw.println("} else {"); pw.print(TransferObjectElementPrinter.RESULT_NAME + "." + MethodHelper.toSetter(dtoField)); if (domainMethodReturnType.getKind().equals(MutableTypeKind.TYPEVAR)) { pw.print("((" + ConverterTypeElement.DTO_TYPE_ARGUMENT_PREFIX + "_" + ((MutableTypeVariable)domainMethodReturnType).getVariable() + ")"); } else { pw.print("((", domainMethodReturnType.getDto(), ")"); } pw.print(TransferObjectElementPrinter.DOMAIN_NAME + "." + domainField); pw.println(");"); pw.println("}"); } }
pw.println(DefaultConverterConstructorParametersResolver.CONVERTER_PROVIDER_CONTEXT_NAME + "." + MethodHelper.toSetter(converterParameter.getName()) + "(new ", parameterUsagePrinter.getReferenceType(usage), "());"); } else { pw.println(DefaultConverterConstructorParametersResolver.CONVERTER_PROVIDER_CONTEXT_NAME + "." + MethodHelper.toSetter(converterParameter.getName()) + "(" + converterParameter.getName() + ");");
case ENUM: case PRIMITIVE: pw.println(RESULT_NAME + "." + MethodHelper.toSetter(context.getDtoFieldName()) + "(" + MethodHelper.toGetter(context.getDtoFieldName()) + ");"); return; case CLASS: pw.println(RESULT_NAME + "." + MethodHelper.toSetter(context.getDtoFieldName()) + "(" + newFieldName + ");"); pw.println("}"); } else { pw.print(RESULT_NAME + "." + MethodHelper.toSetter(context.getDtoFieldName()) + "(" + MethodHelper.toGetter(context.getDtoFieldName()));
pw.println(previousPath + "." + MethodHelper.toSetter(currentPath) + "(" + currentPath + ");");
pw.println(); pw.println(modifier + "void " + MethodHelper.toSetter(context.getDtoFieldName()) + "(", context.getDtoFieldType(), " " + context.getDtoFieldName() + ") {"); pw.println("this." + context.getDtoFieldName() + " = " + context.getDtoFieldName() + ";");
!printableType.toString(ClassSerializer.CANONICAL, true).equals(setterType.toString(ClassSerializer.CANONICAL, true)); pw.println("public void " + MethodHelper.toSetter(fieldName) + "(", setterType, " " + fieldName + ") {"); pw.print("this." + fieldName + " = ");
@Override protected void processElement(ProcessorContext context) { FormattedPrintWriter pw = context.getPrintWriter(); converterProviderPrinter = getConverterProviderPrinter(pw); TypeElement cachedConverterType = processingEnv.getElementUtils().getTypeElement(BasicCachedConverter.class.getCanonicalName()); ParameterElement[] constructorAdditionalParameters = getParametersResolverProvider().getParameterResolver(UsageType.DEFINITION).getConstructorAditionalParameters(); ConstructorPrinter constructorPrinter = new ConstructorPrinter(context.getOutputType(), processingEnv); constructorPrinter.printConstructors(cachedConverterType, constructorAdditionalParameters); TypeElement superClassElement = context.getOutputType().getSuperClass() != null ? context.getOutputType().getSuperClass().asElement() : null; for (ParameterElement constructorAdditionalParameter: constructorAdditionalParameters) { String parameterName = constructorAdditionalParameter.getName().toString(); if (constructorAdditionalParameter.getPropagationType().equals(PropagationType.PROPAGATED_MUTABLE) && !containsField(superClassElement, constructorAdditionalParameter)) { MutableVariableElement field = processingEnv.getElementUtils().getParameterElement(constructorAdditionalParameter.getType(), parameterName); context.getOutputType().addField((MutableVariableElement) field.addModifier(Modifier.PROTECTED)); MutableExecutableType setterMethod = processingEnv.getTypeUtils().getExecutable( processingEnv.getTypeUtils().toMutableType(processingEnv.getTypeUtils().getNoType(TypeKind.VOID)), MethodHelper.toSetter(parameterName)). addParameter(processingEnv.getElementUtils().getParameterElement(constructorAdditionalParameter.getType(), parameterName)).addModifier(Modifier.PUBLIC); context.getOutputType().addMethod(setterMethod); setterMethod.getPrintWriter().println("this." + parameterName + " = " + parameterName + ";"); } } super.processElement(context); converterProviderPrinter.printConverterMethods(context.getOutputType(), false, ConverterInstancerType.REFERENCED_CONVERTER_INSTANCER); }
pw.print(")"); pw.print("." + MethodHelper.toSetter(domainPathResolver.getPath()) + "(");
pw.print(TransferObjectElementPrinter.RESULT_NAME + "." + MethodHelper.toSetter(context.getDtoFieldName()) + "("); pw.println(";"); pw.println("if (" + converterName + " != null) {"); pw.print(TransferObjectElementPrinter.RESULT_NAME + "." + MethodHelper.toSetter(context.getDtoFieldName()) + "(" + converterName + ".toDto(" + TransferObjectElementPrinter.DOMAIN_NAME + "." + context.getDomainFieldName() + ")"); } else { pw.print(TransferObjectElementPrinter.RESULT_NAME + "." + MethodHelper.toSetter(context.getDtoFieldName()) + "("); if (context.getDtoFieldType() != null && context.getDtoFieldType() instanceof MutableTypeVariable) { pw.print("(", ((MutableTypeVariable)context.getDtoFieldType()).getVariable(), ")"); pw.println(TransferObjectElementPrinter.RESULT_NAME + "." + MethodHelper.toSetter(context.getDtoFieldName()) + "(null);"); pw.println("}"); pw.println("");
pw.print(TransferObjectElementPrinter.RESULT_NAME + "." + MethodHelper.toSetter(domainPathResolver.getPath()) + "(");