public HierarchyPrintWriter getPrintWriter(MutableDeclaredType type) { return type.getMethod(GET_METHOD_NAME).getPrintWriter(); }
private void printMethods(HierarchyPrintWriter printWriter, MutableDeclaredType type) { for (MutableExecutableType method: type.getMethods()) { printWriter.addNestedPrinter(method.getPrintWriter()); printWriter.println(" "); } }
@Override public void flush() { if (getNestedPrinters() == null || getNestedPrinters().size() == 0) { initializePrinter(); } handleNestedPrinters(method.getPrintWriter().getNestedPrinters()); super.flush(); } }
@Override public void finish(ServiceTypeElement serviceTypeElement) { List<ConverterConstructorParameter> params = mergeSameParams(converterParameters); HierarchyPrintWriter pw = serviceTypeElement.getServiceConverter().getConstructor().getPrintWriter(); for (ConverterConstructorParameter converterParameter : params) { pw.println("this." + converterParameter.getName() + " = " + converterParameter.getName() + ";"); } } }
@Override public void print(ServiceConverterPrinterContext context) { super.print(context); HierarchyPrintWriter pw = context.getService().getServiceConverter().getConstructor().getPrintWriter(); pw.println(); pw.println("this." + context.getLocalServiceFieldName() + " = " + context.getLocalServiceFieldName() + ";"); }
HierarchyPrintWriter printWriter = ownerType.getConstructor().getPrintWriter();
private boolean printConstructors(HierarchyPrintWriter printWriter, MutableDeclaredType type) { if (!type.getConstructor().isDefault()) { type.getConstructor().setReturnType(null); printWriter.addNestedPrinter(type.getConstructor().getPrintWriter()); printWriter.addNestedPrinter(new FormattedPrintWriter(processingEnv)).println(""); return true; } return false; }
copiedMethod.getPrintWriter().println(line.trim());
public static void addField(MutableProcessingEnvironment processingEnv, MutableDeclaredType ownerType, MutableTypeMirror fieldType, String fieldName) { MutableVariableElement field = processingEnv.getElementUtils().getParameterElement(fieldType, fieldName); ownerType.addField((MutableVariableElement) field.addModifier(Modifier.PROTECTED).addModifier(Modifier.FINAL)); field = processingEnv.getElementUtils().getParameterElement(fieldType, fieldName); ownerType.getConstructor().addParameter(field); ownerType.getConstructor().getPrintWriter().println("this." + fieldName + " = " + fieldName + ";"); }
HierarchyPrintWriter pw = remoteMutableMethod.asType().getPrintWriter();
@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); }
@Override public void print(ConverterProviderType serviceConverterProvider) { List<MutableVariableElement> requiredParameters = contextType.getConstructor().getParameters(); List<MutableVariableElement> localFields = serviceConverterProvider.getFields(); for (MutableVariableElement generatedParameter: requiredParameters) { if (getLocalField(localFields, generatedParameter) == null) { initializeContextMethod.addParameter(processingEnv.getElementUtils().getParameterElement(generatedParameter.asType(), generatedParameter.getSimpleName())); } } HierarchyPrintWriter printWriter = initializeContextMethod.getPrintWriter(); printWriter.print("return new " + serviceConverterProvider.getSimpleName() + "("); int i = 0; for (MutableVariableElement parameter: requiredParameters) { if (i > 0) { printWriter.print(", "); } MutableVariableElement localField = getLocalField(localFields, parameter); if (localField == null) { MutableVariableElement methodParameter = getLocalField(initializeContextMethod.getParameters(), parameter); if (methodParameter == null) { serviceConverterProvider.getField(methodParameter); } printWriter.print(parameter.getSimpleName()); } else { printWriter.print(localField.getSimpleName()); } i++; } printWriter.println(");"); }
HierarchyPrintWriter printWriter = equalsSupportMethod.getPrintWriter();
HierarchyPrintWriter constructorPrintWriter = outputType.getConstructor().addModifier(Modifier.PUBLIC).getPrintWriter(); HierarchyPrintWriter getElementMethodPrinter = getElementMethod.getPrintWriter();
HierarchyPrintWriter printWriter = hashCodeSupportMethod.getPrintWriter();