public static Element getField(ExecutableElement method) { return getField(method.getEnclosingElement(), toField(method)); }
protected boolean isReadOnlyMethod(ReadOnlyAccessor readOnlyAccessor, ExecutableElement method) { return readOnlyAccessor.isReadonly() && (!MethodHelper.toField(method).equals(method.getSimpleName().toString()) || ReadOnly.PropertyType.METHOD.equals(readOnlyAccessor.getPropertyType())); }
@Override public void initialize(TypeElement type, MutableDeclaredType outputName) { instanceName = MethodHelper.toField(outputName.getSimpleName()); pw.println("public " + outputName.getSimpleName() + "(" + outputName.getSimpleName() + " " + instanceName + ") {"); }
handler.handle(method, MethodHelper.toField(method)); } else if(MetamodelMethodStrategy.PURE.equals(methodStrategy)) { handler.handle(method, simpleMethodName);
protected void generateGetBeanAttributes(FormattedPrintWriter pw, List<ExecutableElement> methods) { // create the getAttribute method pw.println("public ", Object.class, " getBeanAttribute(", String.class, " attr) {"); for (ExecutableElement method: methods) { if (MethodHelper.isGetterMethod(method) && method.getParameters().size() == 0) { pw.println("if (attr.equals(\"" + MethodHelper.toField(method) + "\")) {"); pw.println("return " + castToString(method.getReturnType(), "this." + method.getSimpleName().toString() + "()") + ";"); pw.print("} else "); } } pw.println("if (attr.equals(\"" + BEAN_WRAPPER_CONTENT + "\")) {"); pw.println("return " + BEAN_WRAPPER_CONTENT + ";"); pw.println("} else {"); pw.println("return null;"); pw.println("}"); pw.println("}"); pw.println(); }
protected void generateSetBeanAttributes(FormattedPrintWriter pw, List<ExecutableElement> methods, MutableDeclaredType beanType, TypeElement owner) { // create the set attribute method pw.println("public void setBeanAttribute(", String.class, " " + ATTRIBUTE_NAME + ", ", Object.class, " value) {"); PojoElement pojoElement = new PojoElement(owner, processingEnv); for (ExecutableElement method: methods) { if (MethodHelper.isSetterMethod(method) && method.getParameters().size() == 1) { ExecutableElement getterMethod = pojoElement.getGetterMethod(method); if (getterMethod == null) { continue; } pw.println("if (" + ATTRIBUTE_NAME + ".equals(\"" + MethodHelper.toField(method) + "\")) { "); pw.print("this." + method.getSimpleName() + "("); castFromString(pw, method.getParameters().get(0).asType(), "value", owner); pw.println(");"); pw.print("} else "); } } pw.println("if (attr.equals(\"" + BEAN_WRAPPER_CONTENT + "\")) {"); pw.println("this." + BEAN_WRAPPER_CONTENT + " = (", beanType.clone().stripTypeParametersTypes(), ") value;"); pw.println("}"); pw.println("}"); pw.println(); }
@Override public void initialize(TypeElement type, MutableDeclaredType outputName) { instanceName = MethodHelper.toField(outputName.getSimpleName()); pw.println("public " + outputName.getSimpleName() + " merge(" + outputName.getSimpleName() + " " + instanceName + ") {"); pw.println("if (" + instanceName + " == null) {"); pw.println("return this;"); pw.println("}"); }
protected void generateSetterForBean(FormattedPrintWriter pw, ExecutableElement method, VariableElement parameter, ExecutableElement getter, MutableDeclaredType result, TypeElement owner) { String field = MethodHelper.toField(method) + NESTED_BEAN_WRAPPER;
} else { if (nestedIdMethod != null) { String idPath = fullPath + "." + MethodHelper.toField(nestedIdMethod); if (!contains(generated, idPath)) { context = transferObjectContextProvider.get(configurationTypeElement, Modifier.PROTECTED, nestedIdMethod, nestedIdMethod, fullPath, false); Id.class.getSimpleName() + " annotation or just specify id as a method name.", configurationTypeElement.asConfigurationElement()); return; } else if (idMethod != null && !contains(generated, MethodHelper.toField(idMethod)) && !isInSuperclassConfiguration(idMethod, configurationTypeElement.getInstantiableDomain())) { TransferObjectContext context = transferObjectContextProvider.get(configurationTypeElement, Modifier.PROTECTED, idMethod, idMethod, false); if (context != null) {
protected void generateGetterForBean(FormattedPrintWriter pw, ExecutableElement method, MutableDeclaredType result, List<String> wrappedFields, TypeElement owner) { String field = MethodHelper.toField(method) + NESTED_BEAN_WRAPPER; TypeMirror returnType = method.getReturnType();
@Override protected void processElement(ProcessorContext context) { ServiceConverterTypeElement converterType = (ServiceConverterTypeElement) context.getOutputType(); ServiceTypeElement serviceTypeElement = converterType.getServiceTypeElement(); this.converterProviderPrinter = getConverterProviderPrinter(serviceTypeElement); for (ServiceConverterElementPrinter elementPrinter: getElementPrinters(serviceTypeElement)) { elementPrinter.initialize(serviceTypeElement, context.getOutputType()); for (LocalServiceTypeElement localServiceInterface: serviceTypeElement.getLocalServiceInterfaces()) { ServiceConverterPrinterContext printerContext = new ServiceConverterPrinterContext(processingEnv); printerContext.setLocalServiceFieldName(MethodHelper.toField(localServiceInterface.getSimpleName() + SERVICE_DELEGATE_NAME)); printerContext.setLocalServiceInterface(localServiceInterface); printerContext.setService(serviceTypeElement); elementPrinter.print(printerContext); } elementPrinter.finish(serviceTypeElement); } this.converterProviderPrinter.printConverterMethods(context.getOutputType(), true, ConverterInstancerType.SERVICE_CONVERETR_INSTANCER); }
@Override protected void processElement(ProcessorContext context) { ServiceConverterTypeElement converterType = (ServiceConverterTypeElement) context.getOutputType(); ServiceTypeElement serviceTypeElement = converterType.getServiceTypeElement(); this.converterProviderPrinter = getConverterProviderPrinter(serviceTypeElement); for (ServiceConverterElementPrinter elementPrinter: getElementPrinters(serviceTypeElement)) { elementPrinter.initialize(serviceTypeElement, context.getOutputType()); for (LocalServiceTypeElement localServiceInterface: serviceTypeElement.getLocalServiceInterfaces()) { ServiceConverterPrinterContext printerContext = new ServiceConverterPrinterContext(processingEnv); printerContext.setLocalServiceFieldName(MethodHelper.toField(localServiceInterface.getSimpleName() + SERVICE_DELEGATE_NAME)); printerContext.setLocalServiceInterface(localServiceInterface); printerContext.setService(serviceTypeElement); elementPrinter.print(printerContext); } elementPrinter.finish(serviceTypeElement); } this.converterProviderPrinter.printConverterMethods(context.getOutputType(), true, ConverterInstancerType.SERVICE_CONVERETR_INSTANCER); }
protected void printCopyNested(PathResolver domainPathResolver, String fullPath, DomainDeclaredType referenceDomainType, ExecutableElement method, FormattedPrintWriter pw, Field field, String dtoName) { DomainDeclaredType instantiableDomain = (DomainDeclaredType)referenceDomainType.getConverter().getInstantiableDomain(); pw.print(referenceDomainType, " " + domainPathResolver.getCurrent() + " = "); if (instantiableDomain.getId(entityResolver) != null) { if (referenceDomainType.getConverter() == null) { processingEnv.getMessager().printMessage(Kind.ERROR, "[ERROR] No converter/configuration for " + referenceDomainType + " was found. Please, define configuration for " + referenceDomainType); } converterProviderPrinter.printObtainConverterFromCache(pw, ConverterTargetType.DTO, referenceDomainType, field, method, true); pw.println(".createDomainInstance(" + dtoName + "." + MethodHelper.toGetter(fullPath + MethodHelper.toMethod(MethodHelper.toField(instantiableDomain.getIdMethod(entityResolver)))) + ");"); } else { pw.println(TransferObjectElementPrinter.RESULT_NAME + "." + MethodHelper.toGetter(domainPathResolver.getCurrent()) + ";"); pw.println("if (" + domainPathResolver.getCurrent() + " == null) {"); pw.print(domainPathResolver.getCurrent() + " = "); // TODO add NPE check converterProviderPrinter.printObtainConverterFromCache(pw, ConverterTargetType.DTO, referenceDomainType, field, method, true); pw.println(".createDomainInstance(null);"); pw.println("}"); } }
pw.println(dtoType, " " + RESULT_NAME + " = getDtoInstance(" + DOMAIN_NAME + ", " + DOMAIN_NAME + "." + MethodHelper.toGetter(MethodHelper.toField(idMethod)) + ");"); pw.println("if (" + RESULT_NAME + " != null) {"); pw.println("return " + RESULT_NAME + ";"); String methodName = DOMAIN_NAME + "." + MethodHelper.toGetter(MethodHelper.toField(idMethod)); pw.println(dtoType, " dtoFromCache = getDtoFromCache(" + DOMAIN_NAME + ", " + DOMAIN_NAME + "." + MethodHelper.toGetter(MethodHelper.toField(idMethod)) + ");"); pw.println(); pw.println("if (dtoFromCache != null) {"); pw.println("putDtoIntoCache(" + DOMAIN_NAME + ", " + RESULT_NAME + "," + RESULT_NAME + "." + MethodHelper.toGetter(MethodHelper.toField(idMethod)) + ");"); pw.println();
private void printAccessorForField(FormattedPrintWriter pw, TypeElement owner, MutableTypeMirror mutableReturnType, ExecutableElement method) { String fieldName = MethodHelper.toField(method);
pw.println(domainType, " " + RESULT_NAME + " = getDomainInstance(" + DTO_NAME + ", " + DTO_NAME + "." + MethodHelper.toGetter(MethodHelper.toField(dtoIdMethod)) + ");"); pw.println("if (" + RESULT_NAME + " != null) {"); pw.println("return " + RESULT_NAME + ";"); Field field = new Field(DTO_NAME + "." + MethodHelper.toGetter(MethodHelper.toField(dtoIdMethod)), dtoIdType); converterProviderPrinter.printObtainConverterFromCache(pw, ConverterTargetType.DTO, dtoIdType.getDomainDefinitionConfiguration().getInstantiableDomain(), field, domainIdMethod, true); pw.print(".fromDto("); pw.print(DTO_NAME + "." + MethodHelper.toGetter(MethodHelper.toField(dtoIdMethod))); pw.println(domainType, " domainFromCache = getDomainFromCache(" + DTO_NAME + ", " + DTO_NAME + "." + MethodHelper.toGetter(MethodHelper.toField(dtoIdMethod)) + ");"); pw.println(); pw.println("if (domainFromCache != null) {"); pw.println("putDomainIntoCache(" + DTO_NAME + ", " + RESULT_NAME + "," + RESULT_NAME + "." + MethodHelper.toGetter(MethodHelper.toField(domainIdMethod)) + ");"); pw.println();
ExecutableElement getterMethod = configurationTypeElement.getDomain().getGetterMethod(MethodHelper.toField(domainIdMethod));