private void addSetPropertyCase(JDefinedClass jclass, JSwitch setterSwitch, String propertyName, JType propertyType, JVar valueVar, JsonNode node) { JBlock setterBody = setterSwitch._case(lit(propertyName)).body(); addSetProperty(jclass, setterBody, propertyName, propertyType, valueVar, node); setterBody._return(TRUE); }
private void addGetPropertyCase(JDefinedClass jclass, JSwitch propertySwitch, String propertyName, JType propertyType, JsonNode node) { JMethod propertyGetter = jclass.getMethod(getGetterName(propertyName, propertyType, node), new JType[] {}); propertySwitch._case(lit(propertyName)).body() ._return(invoke(propertyGetter)); }
private JMethod addInternalGetMethodJava7(JDefinedClass jclass, JsonNode propertiesNode) { JMethod method = jclass.method(PROTECTED, jclass.owner()._ref(Object.class), DEFINED_GETTER_NAME); JVar nameParam = method.param(String.class, "name"); JVar notFoundParam = method.param(jclass.owner()._ref(Object.class), "notFoundValue"); JBlock body = method.body(); JSwitch propertySwitch = body._switch(nameParam); if (propertiesNode != null) { for (Iterator<Map.Entry<String, JsonNode>> properties = propertiesNode.fields(); properties.hasNext();) { Map.Entry<String, JsonNode> property = properties.next(); String propertyName = property.getKey(); JsonNode node = property.getValue(); String fieldName = ruleFactory.getNameHelper().getPropertyName(propertyName, node); JType propertyType = jclass.fields().get(fieldName).type(); addGetPropertyCase(jclass, propertySwitch, propertyName, propertyType, node); } } JClass extendsType = jclass._extends(); if (extendsType != null && extendsType instanceof JDefinedClass) { JDefinedClass parentClass = (JDefinedClass) extendsType; JMethod parentMethod = parentClass.getMethod(DEFINED_GETTER_NAME, new JType[] { parentClass.owner()._ref(String.class), parentClass.owner()._ref(Object.class) }); propertySwitch._default().body() ._return(_super().invoke(parentMethod).arg(nameParam).arg(notFoundParam)); } else { propertySwitch._default().body() ._return(notFoundParam); } return method; }
private JMethod addInternalSetMethodJava7(JDefinedClass jclass, JsonNode propertiesNode) { JMethod method = jclass.method(PROTECTED, jclass.owner().BOOLEAN, DEFINED_SETTER_NAME); JVar nameParam = method.param(String.class, "name"); JVar valueParam = method.param(Object.class, "value"); JBlock body = method.body(); JSwitch propertySwitch = body._switch(nameParam); if (propertiesNode != null) { for (Iterator<Map.Entry<String, JsonNode>> properties = propertiesNode.fields(); properties.hasNext();) { Map.Entry<String, JsonNode> property = properties.next(); String propertyName = property.getKey(); JsonNode node = property.getValue(); String fieldName = ruleFactory.getNameHelper().getPropertyName(propertyName, node); JType propertyType = jclass.fields().get(fieldName).type(); addSetPropertyCase(jclass, propertySwitch, propertyName, propertyType, valueParam, node); } } JBlock defaultBlock = propertySwitch._default().body(); JClass extendsType = jclass._extends(); if (extendsType != null && extendsType instanceof JDefinedClass) { JDefinedClass parentClass = (JDefinedClass) extendsType; JMethod parentMethod = parentClass.getMethod(DEFINED_SETTER_NAME, new JType[] { parentClass.owner()._ref(String.class), parentClass.owner()._ref(Object.class) }); defaultBlock._return(_super().invoke(parentMethod).arg(nameParam).arg(valueParam)); } else { defaultBlock._return(FALSE); } return method; }
private void addSetPropertyCase(JDefinedClass jclass, JSwitch setterSwitch, String propertyName, JType propertyType, JVar valueVar, JsonNode node) { JBlock setterBody = setterSwitch._case(lit(propertyName)).body(); addSetProperty(jclass, setterBody, propertyName, propertyType, valueVar, node); setterBody._return(TRUE); }
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)); } }
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); caseBlock.body().invoke("assertStartArray").arg(jsonVar); 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); JClass setType = model.ref(HashSet.class); JInvocation newSet = JExpr._new(setType); caseBlock.body().assign(setVar, newSet); JWhileLoop arrayLoop = caseBlock.body()._while(JOp.not(test)); arrayLoop.body().add(setVar.invoke("add").arg(value));
private void castInt(JCodeModel model, URI predicate, Map<URI, JVar> properties, boolean isFunctional, JVar pojoVar, JVar jsonVar, JCase caseBlock, String setterName, JType expectedType) { JClass tokenType = model.ref(JsonToken.class); JExpression value = JExpr.cast(expectedType, jsonVar.invoke("getValueAsInt")); 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(jsonVar); 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 = jsonVar.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)); } }
private void addGetPropertyCase(JDefinedClass jclass, JSwitch propertySwitch, String propertyName, JType propertyType, JsonNode node) { JMethod propertyGetter = jclass.getMethod(getGetterName(propertyName, propertyType, node), new JType[] {}); propertySwitch._case(lit(propertyName)).body() ._return(invoke(propertyGetter)); }
if (properties == null) { JInvocation statement = pojoVar.invoke(setterName).arg(uriValue); caseBlock.body().add(statement); } else { JVar fieldVar = properties.get(predicate); caseBlock.body().assign(fieldVar, uriValue); caseBlock.body().invoke("assertStartArray").arg(jsonVar); 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); JWhileLoop arrayLoop = caseBlock.body()._while(JOp.not(test)); arrayLoop.body().add(setVar.invoke("add").arg(uriValue));
caseBlock.body().add(statement); } else { caseBlock.body().assign(properties.get(predicate), newObject); caseBlock.body().invoke("assertStartArray").arg(jsonVar); setVar = declareSet(model, caseBlock.body(), predicate, interfaceType); JInvocation statement = pojoVar.invoke(setterName).arg(setVar); caseBlock.body().add(statement); } else { setVar = properties.get(predicate); JClass arrayListType = model.ref(HashSet.class); arrayListType = arrayListType.narrow(interfaceType); caseBlock.body().assign(setVar, JExpr._new(arrayListType)); caseBlock.body().add(jsonVar.invoke("nextToken")); JWhileLoop arrayLoop = caseBlock.body()._while(JOp.not(test)); stringCase.body().add(setVar.invoke("add").arg(newObject)); stringCase.body()._break(); objectCase.body().add(setVar.invoke("add").arg(JExpr.invoke("read").arg(jsonVar))); } else { JDefinedClass objectReader = produceJsonReader(valueClassId, model); objectCase.body().add(setVar.invoke("add").arg(objectReader.staticInvoke("instance").invoke("read").arg(jsonVar))); objectCase.body()._break();
private JMethod addInternalGetMethodJava7(JDefinedClass jclass, JsonNode propertiesNode) { JMethod method = jclass.method(PROTECTED, jclass.owner()._ref(Object.class), DEFINED_GETTER_NAME); JVar nameParam = method.param(String.class, "name"); JVar notFoundParam = method.param(jclass.owner()._ref(Object.class), "notFoundValue"); JBlock body = method.body(); JSwitch propertySwitch = body._switch(nameParam); if (propertiesNode != null) { for (Iterator<Map.Entry<String, JsonNode>> properties = propertiesNode.fields(); properties.hasNext();) { Map.Entry<String, JsonNode> property = properties.next(); String propertyName = property.getKey(); JsonNode node = property.getValue(); String fieldName = ruleFactory.getNameHelper().getPropertyName(propertyName, node); JType propertyType = jclass.fields().get(fieldName).type(); addGetPropertyCase(jclass, propertySwitch, propertyName, propertyType, node); } } JClass extendsType = jclass._extends(); if (extendsType != null && extendsType instanceof JDefinedClass) { JDefinedClass parentClass = (JDefinedClass) extendsType; JMethod parentMethod = parentClass.getMethod(DEFINED_GETTER_NAME, new JType[] { parentClass.owner()._ref(String.class), parentClass.owner()._ref(Object.class) }); propertySwitch._default().body() ._return(_super().invoke(parentMethod).arg(nameParam).arg(notFoundParam)); } else { propertySwitch._default().body() ._return(notFoundParam); } return method; }
private JMethod addInternalSetMethodJava7(JDefinedClass jclass, JsonNode propertiesNode) { JMethod method = jclass.method(PROTECTED, jclass.owner().BOOLEAN, DEFINED_SETTER_NAME); JVar nameParam = method.param(String.class, "name"); JVar valueParam = method.param(Object.class, "value"); JBlock body = method.body(); JSwitch propertySwitch = body._switch(nameParam); if (propertiesNode != null) { for (Iterator<Map.Entry<String, JsonNode>> properties = propertiesNode.fields(); properties.hasNext();) { Map.Entry<String, JsonNode> property = properties.next(); String propertyName = property.getKey(); JsonNode node = property.getValue(); String fieldName = ruleFactory.getNameHelper().getPropertyName(propertyName, node); JType propertyType = jclass.fields().get(fieldName).type(); addSetPropertyCase(jclass, propertySwitch, propertyName, propertyType, valueParam, node); } } JBlock defaultBlock = propertySwitch._default().body(); JClass extendsType = jclass._extends(); if (extendsType != null && extendsType instanceof JDefinedClass) { JDefinedClass parentClass = (JDefinedClass) extendsType; JMethod parentMethod = parentClass.getMethod(DEFINED_SETTER_NAME, new JType[] { parentClass.owner()._ref(String.class), parentClass.owner()._ref(Object.class) }); defaultBlock._return(_super().invoke(parentMethod).arg(nameParam).arg(valueParam)); } else { defaultBlock._return(FALSE); } return method; }
factorySwitch._case(JExpr.lit(id.stringValue())); factorySwitch._case(JExpr.lit(curie.toString())); factorySwitch._case(JExpr.lit(id.getLocalName())).body()._return(field);
staticReadSwitchBlock._case(generator.registry().cls().staticRef("NULL_FORMAT_CODE")).body()._return(cast(getJavaType(), generator.registry().cls() .staticInvoke("instance") .invoke("encoder") writeBodySwitchBlock._case(generator.registry().cls().staticRef("NULL_FORMAT_CODE")).body()._break(); readSwitchBlock._case(ref(staticCodeFieldName)).body() .assign(_this().ref("value"), generator.registry().cls() ._break(); staticReadSwitchBlock._case(ref(staticCodeFieldName)).body() ._return(generator.registry().cls() .staticInvoke("instance") .arg(ref("in"))); writeBodySwitchBlock._case(ref(staticCodeFieldName)).body() .add(generator.registry().cls().staticInvoke("instance") .invoke("encoder") readSwitchBlock._default().body()._throw(_new(cm.ref(Exception.class)).arg(lit("Unknown format code for " + type.getName() + " : 0x").plus(cm.ref("java.lang.String").staticInvoke("format").arg("%x").arg(ref("formatCode"))))); staticReadSwitchBlock._default().body()._throw(_new(cm.ref(Exception.class)).arg(lit("Unknown format code for " + type.getName() + " : 0x").plus(cm.ref("java.lang.String").staticInvoke("format").arg("%x").arg(ref("formatCode"))))); writeBodySwitchBlock._default().body()._throw(_new(cm.ref(Exception.class)).arg(lit("Unknown format code for " + type.getName() + " : 0x").plus(cm.ref("java.lang.String").staticInvoke("format").arg("%x").arg(ref("formatCode")))));
_case.body()._return(ref(toStaticName(constant.getName())));