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 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; }
JMethod parentMethod = parentClass.getMethod(DEFINED_SETTER_NAME, new JType[] { parentClass.owner()._ref(String.class), parentClass.owner()._ref(Object.class) }); lastBlock._return(_super().invoke(parentMethod).arg(nameParam).arg(valueParam)); } else { lastBlock._return(FALSE);
JMethod parentMethod = parentClass.getMethod(DEFINED_GETTER_NAME, new JType[] { parentClass.owner()._ref(String.class), parentClass.owner()._ref(Object.class) }); lastBlock._return(_super().invoke(parentMethod).arg(nameParam).arg(notFoundParam)); } else { lastBlock._return(notFoundParam);
private void addOverrideBuilder(JDefinedClass thisJDefinedClass, JMethod parentBuilder, JVar parentParam) { if (thisJDefinedClass.getMethod(parentBuilder.name(), new JType[] {parentParam.type()}) == null) { JMethod builder = thisJDefinedClass.method(parentBuilder.mods().getValue(), thisJDefinedClass, parentBuilder.name()); builder.annotate(Override.class); JVar param = builder.param(parentParam.type(), parentParam.name()); JBlock body = builder.body(); body.invoke(JExpr._super(), parentBuilder).arg(param); body._return(JExpr._this()); } } }
body.assign(result, result.mul(JExpr.lit(31)).plus(JExpr._super().invoke("hashCode")));
result = result.cand(JExpr._super().invoke("equals").arg(rhsVar));
JVar superString = body.decl(jclass.owner().ref(String.class), "superString", JExpr._super().invoke("toString"));
public JCodeModel generate(JCodeModel jCodeModel, RefHelper ref) throws IOException { logger = LoggerFactory.getLogger(getClass()); try { jClass = jCodeModel._class(appDetails.getApplicationPackage()); jClass._extends(ref.application()); jClass.annotate(ref.reportsCrashes()).param("formKey", "YOUR_FORM_KEY"); JMethod onCreateMethod = jClass.method(JMod.PUBLIC, jCodeModel.VOID, "onCreate"); onCreateMethod.annotate(ref.override()); JBlock onCreateMethodBody = onCreateMethod.body(); onCreateMethodBody.staticInvoke(ref.acra(), "init").arg(JExpr._this()); onCreateMethodBody.invoke(JExpr._super(), "onCreate"); } catch (JClassAlreadyExistsException e1) { logger.error("Classname already exists", e1); } return jCodeModel; }
private JBlock createAfterViewsMethod() { JBlock afterViewsBody; if (!appDetails.isAndroidAnnotations()) { JMethod onCreate = jClass.method(JMod.PUBLIC, jCodeModel.VOID, "onCreate"); onCreate.annotate(ref.override()); JVar params = onCreate.param(ref.bundle(), "savedInstanceState"); afterViewsBody = onCreate.body(); // super.onCreate() afterViewsBody.invoke(JExpr._super(), "onCreate").arg(params); // setContentView(R.layout.xxx) afterViewsBody.invoke("setContentView").arg(ref.r().staticRef("layout").ref(appDetails.getActivityLayout())); } else { JMethod afterViews = jClass.method(JMod.NONE, jCodeModel.VOID, "afterViews"); afterViews.annotate(ref.afterViews()); afterViewsBody = afterViews.body(); } return afterViewsBody; }
private JBlock getSaveStateMethodBody(JCodeModel codeModel, EBeanHolder holder) { if (holder.saveInstanceStateBlock == null) { JMethod method = holder.generatedClass.method(PUBLIC, codeModel.VOID, "onSaveInstanceState"); method.annotate(Override.class); method.param(holder.classes().BUNDLE, BUNDLE_PARAM_NAME); holder.saveInstanceStateBlock = method.body(); holder.saveInstanceStateBlock.invoke(JExpr._super(), "onSaveInstanceState").arg(JExpr.ref(BUNDLE_PARAM_NAME)); } return holder.saveInstanceStateBlock; }
private void overrideSetIntent(EBeanHolder holder, JCodeModel codeModel, JMethod initIntentMethod) { if (holder.intentBuilderClass != null) { JMethod setIntentMethod = holder.generatedClass.method(PUBLIC, codeModel.VOID, "setIntent"); setIntentMethod.annotate(Override.class); JVar methodParam = setIntentMethod.param(holder.classes().INTENT, "newIntent"); JBlock setIntentBody = setIntentMethod.body(); setIntentBody.invoke(_super(), setIntentMethod).arg(methodParam); setIntentBody.invoke(initIntentMethod); } }
onViewCreatedMethodBody.invoke(JExpr._super(), "onViewCreated").arg(viewParam).arg(savedInstanceStateParam);
private void onResumeMethod(JCodeModel codeModel, EBeanHolder holder, JFieldVar scope, JFieldVar eventManager) { JMethod method = holder.generatedClass.method(JMod.PUBLIC, codeModel.VOID, "onResume"); method.annotate(Override.class); JBlock body = method.body(); body.invoke(scope, "enter").arg(_this()); body.invoke(_super(), method); fireEvent(holder, eventManager, body, holder.classes().ON_RESUME_EVENT); }
private void onStartMethod(JCodeModel codeModel, EBeanHolder holder, JFieldVar scope, JFieldVar eventManager) { JMethod method = holder.generatedClass.method(JMod.PUBLIC, codeModel.VOID, "onStart"); method.annotate(Override.class); JBlock body = method.body(); body.invoke(scope, "enter").arg(_this()); body.invoke(_super(), method); fireEvent(holder, eventManager, body, holder.classes().ON_START_EVENT); }
private void declareHashCodeMethod(JCodeModel model, TypeInfo pair) { JDefinedClass dc = pair.implClass; JMethod method = dc.method(JMod.PUBLIC, int.class, "hashCode"); JFieldRef idField = JExpr.ref("id"); JBlock body = method.body(); body._if(idField.ne(JExpr._null()))._then()._return(idField.invoke("hashCode")); body._return(JExpr._super().invoke("hashCode")); }
private void onNewIntentMethod(JCodeModel codeModel, EBeanHolder holder, JFieldVar scope, JFieldVar eventManager) { JMethod method = holder.generatedClass.method(JMod.PUBLIC, codeModel.VOID, "onNewIntent"); method.annotate(Override.class); JVar intent = method.param(holder.classes().INTENT, "intent"); JBlock body = method.body(); body.invoke(_super(), method).arg(intent); body.invoke(scope, "enter").arg(_this()); fireEvent(holder, eventManager, body, holder.classes().ON_NEW_INTENT_EVENT); }
static private void createCopyMethod(JDefinedClass clazz){ JCodeModel codeModel = clazz.owner(); JClass reportClazz = codeModel.ref("org.jpmml.evaluator.Report"); JMethod method = clazz.method(JMod.PUBLIC, clazz, "copy"); method.annotate(Override.class); JBlock body = method.body(); JVar reportVariable = body.decl(reportClazz, "report", JExpr.invoke("getReport")); body._return(JExpr._new(clazz).arg(JExpr._super().ref("value")).arg(reportVariable.invoke("copy")).arg(JExpr._null())); }
private void onStopMethod(JCodeModel codeModel, EBeanHolder holder, JFieldVar scope, JFieldVar eventManager) { JMethod method = holder.generatedClass.method(JMod.PUBLIC, codeModel.VOID, "onStop"); method.annotate(Override.class); JBlock body = method.body(); body.invoke(scope, "enter").arg(_this()); JTryBlock tryBlock = body._try(); fireEvent(holder, eventManager, tryBlock.body(), holder.classes().ON_STOP_EVENT); JBlock finallyBody = tryBlock._finally(); finallyBody.invoke(scope, "exit").arg(_this()); finallyBody.invoke(_super(), method); }
private void addOverrideBuilder(JDefinedClass thisJDefinedClass, JMethod parentBuilder, JVar parentParam) { if (thisJDefinedClass.getMethod(parentBuilder.name(), new JType[] {parentParam.type()}) == null) { JMethod builder = thisJDefinedClass.method(parentBuilder.mods().getValue(), thisJDefinedClass, parentBuilder.name()); builder.annotate(Override.class); JVar param = builder.param(parentParam.type(), parentParam.name()); JBlock body = builder.body(); body.invoke(JExpr._super(), parentBuilder).arg(param); body._return(JExpr._this()); } } }