private JMethod addPublicSetMethod(JDefinedClass jclass, JMethod internalSetMethod) { JMethod method = jclass.method(PUBLIC, jclass.owner().VOID, SETTER_NAME); JVar nameParam = method.param(String.class, "name"); JVar valueParam = method.param(Object.class, "value"); JBlock body = method.body(); JBlock notFound = body._if(JOp.not(invoke(internalSetMethod).arg(nameParam).arg(valueParam)))._then(); // if we have additional properties, then put value. JMethod getAdditionalProperties = jclass.getMethod("getAdditionalProperties", new JType[] {}); if (getAdditionalProperties != null) { JType additionalPropertiesType = ((JClass) (getAdditionalProperties.type())).getTypeParameters().get(1); notFound.add(invoke(getAdditionalProperties).invoke("put").arg(nameParam) .arg(cast(additionalPropertiesType, valueParam))); } // else throw exception. else { notFound._throw(illegalArgumentInvocation(jclass, nameParam)); } return method; }
private JMethod addPublicWithMethod(JDefinedClass jclass, JMethod internalSetMethod) { JMethod method = jclass.method(PUBLIC, jclass, BUILDER_NAME); JVar nameParam = method.param(String.class, "name"); JVar valueParam = method.param(Object.class, "value"); JBlock body = method.body(); JBlock notFound = body._if(JOp.not(invoke(internalSetMethod).arg(nameParam).arg(valueParam)))._then(); // if we have additional properties, then put value. JMethod getAdditionalProperties = jclass.getMethod("getAdditionalProperties", new JType[] {}); if (getAdditionalProperties != null) { JType additionalPropertiesType = ((JClass) (getAdditionalProperties.type())).getTypeParameters().get(1); notFound.add(invoke(getAdditionalProperties).invoke("put").arg(nameParam) .arg(cast(additionalPropertiesType, valueParam))); } // else throw exception. else { notFound._throw(illegalArgumentInvocation(jclass, nameParam)); } body._return(_this()); return method; }
/** * Logical not {@code '!x'}. */ public final JExpression not() { return JOp.not(this); }
/** * Logical not <tt>'!x'</tt>. */ public final JExpression not() { return JOp.not(this); }
/** * Logical not <tt>'!x'</tt>. */ public final JExpression not() { return JOp.not(this); }
/** * Logical not <tt>'!x'</tt>. */ public final JExpression not() { return JOp.not(this); }
/** * Logical not {@code '!x'}. */ public final JExpression not() { return JOp.not(this); }
@Override public JExpression unwrapCondifiton(JExpression source) { final CReferencePropertyInfo core = (CReferencePropertyInfo) this.core; JExpression predicate = null; if (core.getElements().isEmpty()) { predicate = null; } else { for (CElement element : core.getElements()) { if (element instanceof CElementInfo) { CElementInfo elementinfo = (CElementInfo) element; final SingleWrappingReferenceElementInfoField field = new SingleWrappingReferenceElementInfoField( outline, prop, core, elementinfo); final JExpression condition = field .unwrapCondifiton(source); predicate = (predicate == null) ? condition : JOp.cor( predicate, condition); } else { // TODO Other cases currently not supported. } } } final JExpression isElement = codeModel.ref(JAXBContextUtils.class) .staticInvoke("isElement").arg(contextPath).arg(source); return predicate == null ? isElement : JOp.cand(JOp.not(predicate), isElement); }
@Override public JExpression unwrapCondifiton(JExpression source) { final CReferencePropertyInfo core = (CReferencePropertyInfo) this.core; JExpression predicate = null; if (core.getElements().isEmpty()) { predicate = null; } else { for (CElement element : core.getElements()) { if (element instanceof CElementInfo) { CElementInfo elementinfo = (CElementInfo) element; final SingleWrappingReferenceElementInfoField field = new SingleWrappingReferenceElementInfoField( outline, prop, core, elementinfo); final JExpression condition = field .unwrapCondifiton(source); predicate = (predicate == null) ? condition : JOp.cor( predicate, condition); } else { // TODO Other cases currently not supported. } } } final JExpression isElement = codeModel.ref(JAXBContextUtils.class) .staticInvoke("isElement").arg(contextPath).arg(source); return predicate == null ? isElement : JOp.cand(JOp.not(predicate), isElement); }
private void generate$Equals( final JBlock block, final JExpression equalsStrategy, final JExpression leftLocator, final JExpression rightLocator, final JExpression leftParent, final JExpression rightParent, final String name, final JExpression leftValue, final JExpression rightValue) { block ._if( JOp.not(equalsStrategy .invoke("equals") .arg(leftLocator) .arg(leftParent) .arg(JExpr.lit(name)) .arg(rightLocator) .arg(rightParent) .arg(JExpr.lit(name)) .arg(leftValue) .arg(rightValue))) ._then() ._return(JExpr.FALSE); }
public Object onElement(final ElementExp exp) { final JBlock block = JBlock.dummyInstance.block(); final FieldUse nil = classContext.target.getField("Nil"); final JStatement statement = (JStatement) exp.contentModel.visit(this); if (nil == null) { block.add(statement); } else { final FieldItem nilFieldItem = FieldUtils.getFieldItem(nil); final JMethod isNil = AccessorUtils.get(classContext, nilFieldItem); block._if(JOp.not(master.invoke(isNil)))._then().add(statement); } return block; }
private void generate$EmptyEquals( final JBlock block, final JExpression equalsStrategy, final JExpression leftLocator, final JExpression rightLocator, final JExpression leftParent, final JExpression rightParent, final String name, final JExpression leftSet, final JExpression rightSet) { block ._if( JOp.not(equalsStrategy .invoke("emptyEquals") .arg(leftLocator) .arg(leftParent) .arg(JExpr.lit(name)) .arg(rightLocator) .arg(rightParent) .arg(JExpr.lit(name)) .arg(leftSet) .arg(rightSet))) ._then() ._return(JExpr.FALSE); }
private JMethod addPublicSetMethod(JDefinedClass jclass, JMethod internalSetMethod) { JMethod method = jclass.method(PUBLIC, jclass.owner().VOID, SETTER_NAME); JVar nameParam = method.param(String.class, "name"); JVar valueParam = method.param(Object.class, "value"); JBlock body = method.body(); JBlock notFound = body._if(JOp.not(invoke(internalSetMethod).arg(nameParam).arg(valueParam)))._then(); // if we have additional properties, then put value. JMethod getAdditionalProperties = jclass.getMethod("getAdditionalProperties", new JType[] {}); if (getAdditionalProperties != null) { JType additionalPropertiesType = ((JClass) (getAdditionalProperties.type())).getTypeParameters().get(1); notFound.add(invoke(getAdditionalProperties).invoke("put").arg(nameParam) .arg(cast(additionalPropertiesType, valueParam))); } // else throw exception. else { notFound._throw(illegalArgumentInvocation(jclass, nameParam)); } return method; }
private JMethod addPublicWithMethod(JDefinedClass jclass, JMethod internalSetMethod) { JMethod method = jclass.method(PUBLIC, jclass, BUILDER_NAME); JVar nameParam = method.param(String.class, "name"); JVar valueParam = method.param(Object.class, "value"); JBlock body = method.body(); JBlock notFound = body._if(JOp.not(invoke(internalSetMethod).arg(nameParam).arg(valueParam)))._then(); // if we have additional properties, then put value. JMethod getAdditionalProperties = jclass.getMethod("getAdditionalProperties", new JType[] {}); if (getAdditionalProperties != null) { JType additionalPropertiesType = ((JClass) (getAdditionalProperties.type())).getTypeParameters().get(1); notFound.add(invoke(getAdditionalProperties).invoke("put").arg(nameParam) .arg(cast(additionalPropertiesType, valueParam))); } // else throw exception. else { notFound._throw(illegalArgumentInvocation(jclass, nameParam)); } body._return(_this()); return method; }
private void fieldValue(JCodeModel model, URI predicate, Map<URI, JVar> properties, boolean isFunctional, JVar pojoVar, JVar jsonParser, JCase caseBlock, JExpression value) { JClass tokenType = model.ref(JsonToken.class); String setterName = BeanUtil.setterName(predicate); if (isFunctional) { if (properties == null) { JInvocation statement = pojoVar.invoke(setterName).arg(value); caseBlock.body().add(statement); } else { JVar fieldVar = properties.get(predicate); caseBlock.body().assign(fieldVar, value); } } else { caseBlock.body().invoke("assertStartArray").arg(jsonParser); JVar setVar = null; if (properties == null) { setVar = declareSet(model, caseBlock.body(), predicate, model._ref(String.class)); JInvocation statement = pojoVar.invoke(setterName).arg(setVar); caseBlock.body().add(statement); } else { setVar = properties.get(predicate); } JExpression test = jsonParser.invoke("nextToken").invoke("equals").arg(tokenType.staticRef("END_ARRAY")); JWhileLoop arrayLoop = caseBlock.body()._while(JOp.not(test)); arrayLoop.body().add(setVar.invoke("add").arg(value)); } }
JWhileLoop arrayLoop = caseBlock.body()._while(JOp.not(test)); arrayLoop.body().add(setVar.invoke("add").arg(value));
protected JMethod generateObject$Equals(final ClassOutline classOutline, final JDefinedClass theClass) { final JMethod objectEquals = theClass.method(JMod.PUBLIC, theClass .owner().BOOLEAN, "equals"); { final JVar object = objectEquals.param(Object.class, "object"); final JBlock body = objectEquals.body(); body._if(JOp.not(object._instanceof(theClass)))._then()._return( JExpr.FALSE); body._if(JExpr._this().eq(object))._then()._return(JExpr.TRUE); final JVar equalsBuilder = body.decl(JMod.FINAL, theClass.owner() .ref(EqualsBuilder.class), "equalsBuilder", JExpr ._new(theClass.owner().ref(getEqualsBuilderClass()))); body.invoke("equals").arg(object).arg(equalsBuilder); body._return(equalsBuilder.invoke("isEquals")); } return objectEquals; }
protected JMethod generateObject$Equals( final ClassOutline classOutline, final JDefinedClass theClass) { final JMethod objectEquals = theClass.method(JMod.PUBLIC, theClass.owner().BOOLEAN, "equals"); { final JVar object = objectEquals.param(Object.class, "object"); final JBlock body = objectEquals.body(); body._if(JOp.not(object._instanceof(theClass)))._then()._return(JExpr.FALSE); body._if(JExpr._this().eq(object))._then()._return(JExpr.TRUE); final JVar equalsBuilder = body.decl( JMod.FINAL, theClass.owner().ref(EqualsBuilder.class), "equalsBuilder", JExpr._new(theClass.owner().ref(getEqualsBuilderClass()))); body.invoke("equals").arg(object).arg(equalsBuilder); body._return(equalsBuilder.invoke("isEquals")); } return objectEquals; }
public JMethod generate(ClassContext classContext, FieldItem fieldItem, JDefinedClass theClass) { final ClassItem classItem = classContext.target; if (!ignoring.isIgnored(classItem)) { final JMethod equals = classContext.implClass.method(JMod.PUBLIC, getCodeModel(classContext).BOOLEAN, "equals"); final JVar obj = equals.param(Object.class, "obj"); final JConditional ifThisEqObj = equals.body()._if( JOp.eq(JExpr._this(), obj)); ifThisEqObj._then()._return(JExpr.TRUE); final JConditional ifWrongObj = equals.body()._if( JOp.cor(JOp.eq(JExpr._null(), obj), JOp.not(JOp._instanceof(obj, classContext.ref)))); ifWrongObj._then()._return(JExpr.FALSE); final JVar target = equals.body().decl(classContext.implClass, "target", JExpr.cast(classContext.implClass, obj)); for (ClassItem item = classContext.target; item != null; item = item .getSuperClass()) { final ClassContext context = classContext.parent .getClassContext(item); generateFieldsEquality(context, equals.body(), target); } equals.body()._return(JExpr.TRUE); return equals; } else { return null; } }
public JMethod generate(ClassContext classContext, FieldItem fieldItem, JDefinedClass theClass) { ClassUtils._implements(classContext.ref, classContext.ref.owner().ref(EqualsAware.class)); final JMethod visitEquals = classContext.implClass.method( JMod.PUBLIC, getCodeModel(classContext).BOOLEAN, "visitEquals"); final JVar obj = visitEquals.param(Object.class, "obj"); final JVar visitedObjects = visitEquals.param(VisitedObjects.class, "visitedObjects"); visitEquals.body()._if(visitedObjects.invoke("isVisited").arg(JExpr._this()))._then()._return( JExpr.TRUE); visitEquals.body().invoke(visitedObjects, "addVisited").arg(JExpr._this()); final JConditional ifThisEqObj = visitEquals.body()._if(JOp.eq(JExpr._this(), obj)); ifThisEqObj._then()._return(JExpr.TRUE); final JConditional ifWrongObj = visitEquals.body()._if( JOp.cor(JOp.eq(JExpr._null(), obj), JOp.not(JOp._instanceof(obj, classContext.ref)))); ifWrongObj._then()._return(JExpr.FALSE); final JVar target = visitEquals.body().decl( classContext.ref, "target", JExpr.cast(classContext.ref, obj)); for (ClassItem item = classContext.target; item != null; item = item.getSuperClass()) { final ClassContext context = classContext.parent.getClassContext(item); generateFieldsEquality(context, visitEquals.body(), target, visitedObjects); } visitEquals.body()._return(JExpr.TRUE); return visitEquals; }