@Override public void initialize(final ConverterProviderContextType contextType) { // final MutableExecutableType converterProviderContextMethod = processingEnv.getTypeUtils().getExecutable(context.getConvertProviderContextType(), HibernateServiceConverterProviderParameterResolver.GET_CONVERTER_PROVIDER_CONTEXT_METHOD); // converterProviderContextMethod.addModifier(Modifier.PROTECTED); // serviceTypeElement.getServiceConverter().addMethod(converterProviderContextMethod); // HierarchyPrintWriter methodPrinter = converterProviderContextMethod.getPrintWriter(); this.contextType = contextType; initializeContextMethod = processingEnv.getTypeUtils().getExecutable(processingEnv.getTypeUtils().toMutableType(Void.class), "initialize"); initializeContextMethod.addModifier(Modifier.PUBLIC); contextType.addMethod(initializeContextMethod); super.initialize(contextType); }
copiedMethod.addModifier(Modifier.PUBLIC);
@Override public void print(ServiceConverterPrinterContext context) { super.print(context); context.getService().getServiceConverter().getConstructor(). addParameter(processingEnv.getElementUtils().getParameterElement(ProcessorUtils.replaceTypeVariablesByWildcards(context.getLocalServiceInterface().clone()), context.getLocalServiceFieldName())).addModifier(Modifier.PUBLIC); }
context.getService().getServiceConverter().addMethod(mutableMethodType.addModifier(Modifier.PUBLIC));
@Override public void initialize(MutableProcessingEnvironment processingEnv, final HasConstructorParameters type, ConverterConstructorParametersResolverProvider.UsageType usageType) { super.initialize(processingEnv, type, usageType); MutableExecutableType getMethod = processingEnv.getTypeUtils().getExecutable(processingEnv.getTypeUtils().toMutableType(getResultClass()), GET_METHOD_NAME).addModifier(Modifier.PUBLIC); type.addMethod(getMethod); HierarchyPrintWriter printWriter = getPrintWriter(type); printWriter.print(type, " " + ConverterProviderContextPrinterDelegate.RESULT_INSTANCE_NAME + " = new ", type, "("); printWriter.addLazyPrinter(new LazyPrintWriter(processingEnv) { @Override protected void print() { int i = 0; for (MutableVariableElement parameter: type.getConstructor().getParameters()) { if (i > 0) { print(", "); } print(parameter.getSimpleName()); i++; } } }); printWriter.println(");"); }
@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); }
processingEnv.getTypeUtils().toMutableType(processingEnv.getTypeUtils().getPrimitiveType(TypeKind.BOOLEAN)), "_equalsSupport"). addParameter(processingEnv.getElementUtils().getParameterElement(Object.class, "o1")). addParameter(processingEnv.getElementUtils().getParameterElement(Object.class, "o2")).addModifier(Modifier.PRIVATE);
HierarchyPrintWriter constructorPrintWriter = outputType.getConstructor().addModifier(Modifier.PUBLIC).getPrintWriter(); addParameter(processingEnv.getElementUtils().getParameterElement(String.class, "name")).addModifier(Modifier.PUBLIC);
addParameter(processingEnv.getElementUtils().getParameterElement( processingEnv.getTypeUtils().toMutableType(processingEnv.getTypeUtils().getPrimitiveType(TypeKind.INT)), "result")). addModifier(Modifier.PRIVATE);