private void addFactoryMethod(JDefinedClass _enum, JType backingType) { JFieldVar quickLookupMap = addQuickLookupMap(_enum, backingType); JMethod fromValue = _enum.method(JMod.PUBLIC | JMod.STATIC, _enum, "fromValue"); JVar valueParam = fromValue.param(backingType, "value"); JBlock body = fromValue.body(); JVar constant = body.decl(_enum, "constant"); constant.init(quickLookupMap.invoke("get").arg(valueParam)); JConditional _if = body._if(constant.eq(JExpr._null())); JInvocation illegalArgumentException = JExpr._new(_enum.owner().ref(IllegalArgumentException.class)); JExpression expr = valueParam; // if string no need to add "" if(!isString(backingType)){ expr = expr.plus(JExpr.lit("")); } illegalArgumentException.arg(expr); _if._then()._throw(illegalArgumentException); _if._else()._return(constant); ruleFactory.getAnnotator().enumCreatorMethod(_enum, fromValue); }
private void addFromValueMethod() { JMethod fromValue = this.pojo.method(JMod.PUBLIC | JMod.STATIC, this.pojo, "fromValue"); JVar valueParam = fromValue.param(valueField.type(), "value"); fromValue.body()._return(lookupMap.invoke("get").arg(valueParam)); }
return context.toJClass(Double.class).staticInvoke("valueOf").arg(stringValue); } else if (destType.equals(XMLGregorianCalendar.class)) { return builder.getDatatypeFactory().invoke("newXMLGregorianCalendar").arg(stringValue); } else if (destType.equals(Duration.class)) { return builder.getDatatypeFactory().invoke("newDuration").arg(stringValue); } else if (destType.equals(BigDecimal.class)) { return JExpr._new(context.toJClass(BigDecimal.class)).arg(stringValue);
return context.toJClass(Double.class).staticInvoke("valueOf").arg(stringValue); } else if (destType.equals(XMLGregorianCalendar.class)) { return builder.getDatatypeFactory().invoke("newXMLGregorianCalendar").arg(stringValue); } else if (destType.equals(Duration.class)) { return builder.getDatatypeFactory().invoke("newDuration").arg(stringValue); } else if (destType.equals(BigDecimal.class)) { return JExpr._new(context.toJClass(BigDecimal.class)).arg(stringValue);
private void buildProxyMethod(JDefinedClass definedClass, JFieldVar delegateField, JMethod checkDelegateMethod, ASTMethod method) { // public <type> <method_name> ( <parameters...>) JType returnType; if (method.getReturnType() != null) { returnType = generationUtil.ref(method.getReturnType()); } else { returnType = codeModel.VOID; } JMethod methodDeclaration = definedClass.method(JMod.PUBLIC, returnType, method.getName()); //define method parameter Map<ASTParameter, JVar> parameterMap = new HashMap<ASTParameter, JVar>(); for (ASTParameter parameter : method.getParameters()) { parameterMap.put(parameter, methodDeclaration.param(generationUtil.ref(parameter.getASTType()), variableNamer.generateName(parameter.getASTType()))); } //define method body JBlock body = methodDeclaration.body(); body.invoke(checkDelegateMethod); //delegate invocation JInvocation invocation = delegateField.invoke(method.getName()); for (ASTParameter parameter : method.getParameters()) { invocation.arg(parameterMap.get(parameter)); } if (method.getReturnType().equals(ASTVoidType.VOID)) { body.add(invocation); } else { body._return(invocation); } }
propertyVar.init(fieldAccessorField.invoke(methodName).arg(beanVar).arg(builder.getWriteContextVar()).arg(beanVar)); } else { JFieldVar propertyAccessorField = builder.getPrivatePropertyAccessor(property.getGetter(), property.getSetter(), property.getName()); propertyVar.init(propertyAccessorField.invoke("getObject").arg(beanVar).arg(builder.getWriteContextVar()).arg(beanVar));
propertyVar.init(fieldAccessorField.invoke(methodName).arg(beanVar).arg(builder.getWriteContextVar()).arg(beanVar)); } else { JFieldVar propertyAccessorField = builder.getPrivatePropertyAccessor(property.getGetter(), property.getSetter(), property.getName()); propertyVar.init(propertyAccessorField.invoke("getObject").arg(beanVar).arg(builder.getWriteContextVar()).arg(beanVar));
methodName = "setObject"; block.add(fieldAccessorField.invoke(methodName).arg(builder.getXSR()).arg(builder.getReadContextVar()).arg(bean).arg(value)); } else { JFieldVar propertyAccessorField = builder.getPrivatePropertyAccessor(property.getGetter(), property.getSetter(), property.getName()); block.add(propertyAccessorField.invoke("setObject").arg(builder.getXSR()).arg(builder.getReadContextVar()).arg(bean).arg(value));
methodName = "setObject"; block.add(fieldAccessorField.invoke(methodName).arg(builder.getXSR()).arg(builder.getReadContextVar()).arg(bean).arg(value)); } else { JFieldVar propertyAccessorField = builder.getPrivatePropertyAccessor(property.getGetter(), property.getSetter(), property.getName()); block.add(propertyAccessorField.invoke("setObject").arg(builder.getXSR()).arg(builder.getReadContextVar()).arg(bean).arg(value));
assocKeyMethod.body().add(compoundKey.invoke("append").arg(assocKeyName).arg(assocKeyMethodParam));
} else { JFieldVar fieldAccessorField = builder.getPrivateFieldAccessor(field); assignCollectionBlock.add(fieldAccessorField.invoke("setObject").arg(builder.getXSR()).arg(builder.getReadContextVar()).arg(beanVar).arg(collectionAssignment)); } else { JFieldVar propertyAccessorField = builder.getPrivatePropertyAccessor(property.getGetter(), property.getSetter(), property.getName()); assignCollectionBlock.add(propertyAccessorField.invoke("setObject").arg(builder.getXSR()).arg(builder.getReadContextVar()).arg(beanVar).arg(collectionAssignment));
JVar contextVar = staticParse.param(builderContext.toJClass(RuntimeContext.class), "context"); JVar value = staticParse.param(String.class, "value"); staticParse.body()._return(instanceVar.invoke("parse").arg(xsrVar).arg(contextVar).arg(value)); contextVar = staticToString.param(builderContext.toJClass(RuntimeContext.class), "context"); value = staticToString.param(type, decapitalize(type.getSimpleName())); staticToString.body()._return(instanceVar.invoke("toString").arg(beanVar).arg(parameterNameVar).arg(contextVar).arg(value));
JVar epVar = consBody.decl(endpointType, javify(endpoint.getName().getLocalPart()) + "EP", addEndpointInv); JInvocation addEndpoint = endpointsVar.invoke("put").arg(newQN).arg(epVar); consBody.add(addEndpoint);
private void addFactoryMethod(JsonNode node, JDefinedClass _enum) { JFieldVar quickLookupMap = addQuickLookupMap(_enum); JMethod fromValue = _enum.method(JMod.PUBLIC | JMod.STATIC, _enum, "fromValue"); JVar valueParam = fromValue.param(String.class, "value"); JBlock body = fromValue.body(); JVar constant = body.decl(_enum, "constant"); constant.init(quickLookupMap.invoke("get").arg(valueParam)); JConditional _if = body._if(constant.eq(JExpr._null())); JInvocation illegalArgumentException = JExpr._new(_enum.owner().ref(IllegalArgumentException.class)); illegalArgumentException.arg(valueParam); _if._then()._throw(illegalArgumentException); _if._else()._return(constant); ruleFactory.getAnnotator().enumCreatorMethod(fromValue); }
public JMethod createCreateClassMethod(final JDefinedClass bean, final JFieldVar classes) { final JClass returnClazz = _classByNames( java.lang.Class.class.getName(), MessageFormat.format("? extends {0}", bean.name())); final JMethod method = bean.method(JMod.SYNCHRONIZED | JMod.PRIVATE | JMod.STATIC, returnClazz, "_createClass"); final JVar type = method.param(java.lang.String.class, "type"); method.body()._if(classes.invoke("containsKey").arg(type))._then()._return( JExpr.cast(returnClazz, classes.invoke("get").arg(type))); final JTryBlock _try = method.body()._try(); final JBlock body = _try.body(); final JVar packageName = body.decl(_String(), "packageName", packageName(bean)); final JVar typeName = body.decl(_String(), "typeName", setFirstCharacterToUpperCase(type)); final JVar className = body.decl(_String(), "className", format("{0}.{1}", packageName, typeName)); final JVar clazz = body.decl(_Class(), "clazz", classForName(className)); final JExpression condition = isAssignableFrom(bean, clazz).not(); final JBlock block = body._if(condition)._then().block(); block.invoke(classes, "put").arg(type).arg(JExpr._null()); block._return(JExpr._null()); body.invoke(classes, "put").arg(type).arg(clazz); body._return(JExpr.cast(returnClazz, clazz)); final JCatchBlock _catch = _try._catch(_classByNames(java.lang.ClassNotFoundException.class.getName())); _catch.param("exception"); _catch.body().invoke(classes, "put").arg(type).arg(JExpr._null()); _catch.body()._return(JExpr._null()); return method; }
private void addFactoryMethod(JDefinedClass _enum, JType backingType) { JFieldVar quickLookupMap = addQuickLookupMap(_enum, backingType); JMethod fromValue = _enum.method(JMod.PUBLIC | JMod.STATIC, _enum, "fromValue"); JVar valueParam = fromValue.param(backingType, "value"); JBlock body = fromValue.body(); JVar constant = body.decl(_enum, "constant"); constant.init(quickLookupMap.invoke("get").arg(valueParam)); JConditional _if = body._if(constant.eq(JExpr._null())); JInvocation illegalArgumentException = JExpr._new(_enum.owner().ref(IllegalArgumentException.class)); JExpression expr = valueParam; // if string no need to add "" if(!isString(backingType)){ expr = expr.plus(JExpr.lit("")); } illegalArgumentException.arg(expr); _if._then()._throw(illegalArgumentException); _if._else()._return(constant); ruleFactory.getAnnotator().enumCreatorMethod(_enum, fromValue); }
throw new IllegalArgumentException("Neither 'startIndex' nor 'maxResults' parameters should be null"); tryBody._return(businessDataRepository.invoke("findListByNamedQuery").arg(JExpr.lit(entityName + "." + queryName)).arg(JExpr.dotclass(entity)) .arg(queryParameterMap).arg(startIndex).arg(maxResults)); } else { final JClass returnTypeClass = entity.fullName().equals(method.type().fullName()) ? entity : getModel().ref(method.type().fullName()); tryBody._return(businessDataRepository.invoke("findByNamedQuery").arg(JExpr.lit(entityName + "." + queryName)).arg(JExpr.dotclass(returnTypeClass)) .arg(queryParameterMap));
throw new IllegalArgumentException("Neither 'startIndex' nor 'maxResults' parameters should be null"); tryBody._return(businessDataRepository.invoke("findListByNamedQuery").arg(JExpr.lit(entityName + "." + queryName)).arg(JExpr.dotclass(entity)) .arg(queryParameterMap).arg(startIndex).arg(maxResults)); } else { final JClass returnTypeClass = entity.fullName().equals(method.type().fullName()) ? entity : getModel().ref(method.type().fullName()); tryBody._return(businessDataRepository.invoke("findByNamedQuery").arg(JExpr.lit(entityName + "." + queryName)).arg(JExpr.dotclass(returnTypeClass)) .arg(queryParameterMap));
} else { JFieldVar fieldAccessorField = builder.getPrivateFieldAccessor(field); createCollectionBlock.assign(collectionVar, fieldAccessorField.invoke("getObject").arg(builder.getXSR()).arg(builder.getReadContextVar()).arg(beanVar)); } else { JFieldVar propertyAccessorField = builder.getPrivatePropertyAccessor(property.getGetter(), property.getSetter(), property.getName()); createCollectionBlock.assign(collectionVar, propertyAccessorField.invoke("getObject").arg(builder.getXSR()).arg(builder.getReadContextVar()).arg(beanVar));
} else { JFieldVar fieldAccessorField = builder.getPrivateFieldAccessor(field); createCollectionBlock.assign(collectionVar, fieldAccessorField.invoke("getObject").arg(builder.getXSR()).arg(builder.getReadContextVar()).arg(beanVar)); } else { JFieldVar propertyAccessorField = builder.getPrivatePropertyAccessor(property.getGetter(), property.getSetter(), property.getName()); createCollectionBlock.assign(collectionVar, propertyAccessorField.invoke("getObject").arg(builder.getXSR()).arg(builder.getReadContextVar()).arg(beanVar));