![JAR search and dependency download from the Maven repository](/logo.png)
sk.seges.sesam.pap.service.printer.ServiceConstructorDefinitionPrinter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sesam-service-converter-processor Show documentation
Show all versions of sesam-service-converter-processor Show documentation
SeSAM service converter annotation processor
The newest version!
package sk.seges.sesam.pap.service.printer;
import java.util.List;
import javax.lang.model.element.Modifier;
import sk.seges.sesam.core.pap.model.ConverterConstructorParameter;
import sk.seges.sesam.core.pap.model.mutable.api.MutableExecutableType;
import sk.seges.sesam.core.pap.utils.ProcessorUtils;
import sk.seges.sesam.pap.model.model.TransferObjectProcessingEnvironment;
import sk.seges.sesam.pap.model.resolver.ConverterConstructorParametersResolverProvider;
import sk.seges.sesam.pap.service.model.ServiceConverterParametersFilter;
import sk.seges.sesam.pap.service.model.ServiceTypeElement;
import sk.seges.sesam.pap.service.printer.model.ServiceConverterPrinterContext;
public class ServiceConstructorDefinitionPrinter extends AbstractParameterCollectorPrinter {
public ServiceConstructorDefinitionPrinter(TransferObjectProcessingEnvironment processingEnv, ServiceConverterParametersFilter parametersFilter,
ConverterConstructorParametersResolverProvider parametersResolverProvider) {
super(processingEnv, parametersFilter, parametersResolverProvider);
}
@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);
}
@Override
public void finish(ServiceTypeElement serviceTypeElement) {
List params = mergeSameParams(converterParameters);
MutableExecutableType constructor = serviceTypeElement.getServiceConverter().getConstructor();
for (ConverterConstructorParameter converterParameter: params) {
constructor.addParameter(processingEnv.getElementUtils().getParameterElement(
converterParameter.getType(), converterParameter.getName()));
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy