Search in sources :

Example 26 with JBlock

use of com.helger.jcodemodel.JBlock in project androidannotations by androidannotations.

the class EServiceHolder method setOnCreate.

private void setOnCreate() {
    JMethod onCreate = generatedClass.method(PUBLIC, getCodeModel().VOID, "onCreate");
    onCreate.annotate(Override.class);
    JBlock onCreateBody = onCreate.body();
    onCreateBody.invoke(getInit());
    onCreateBody.invoke(JExpr._super(), onCreate);
    onCreateAfterSuperBlock = onCreateBody.blockVirtual();
}
Also used : JBlock(com.helger.jcodemodel.JBlock) JMethod(com.helger.jcodemodel.JMethod)

Example 27 with JBlock

use of com.helger.jcodemodel.JBlock in project androidannotations by androidannotations.

the class EViewHolder method setOnFinishInflate.

protected void setOnFinishInflate() {
    onFinishInflate = generatedClass.method(PUBLIC, getCodeModel().VOID, "onFinishInflate");
    onFinishInflate.annotate(Override.class);
    onFinishInflate.javadoc().append(ALREADY_INFLATED_COMMENT.replaceAll("alreadyInflated_", "alreadyInflated" + generationSuffix()));
    JBlock ifNotInflated = onFinishInflate.body()._if(getAlreadyInflated().not())._then();
    ifNotInflated.assign(getAlreadyInflated(), JExpr.TRUE);
    getInit();
    viewNotifierHelper.invokeViewChanged(ifNotInflated);
    onFinishInflate.body().invoke(JExpr._super(), "onFinishInflate");
}
Also used : JBlock(com.helger.jcodemodel.JBlock)

Example 28 with JBlock

use of com.helger.jcodemodel.JBlock in project androidannotations by androidannotations.

the class EViewHolder method setOnAttachedToWindow.

private void setOnAttachedToWindow() {
    onAttachedToWindowMethod = generatedClass.method(JMod.PUBLIC, getCodeModel().VOID, "onAttachedToWindow");
    onAttachedToWindowMethod.annotate(Override.class);
    JBlock body = onAttachedToWindowMethod.body();
    body.invoke(_super(), onAttachedToWindowMethod);
    onAttachedToWindowAfterSuperBlock = body.blockSimple();
}
Also used : JBlock(com.helger.jcodemodel.JBlock)

Example 29 with JBlock

use of com.helger.jcodemodel.JBlock in project androidannotations by androidannotations.

the class APTCodeModelHelper method replaceSuperCall.

public void replaceSuperCall(JMethod method, JBlock replacement) {
    String superCallStart = "super." + method.name() + "(";
    JBlock oldBody = removeBody(method);
    JBlock newBody = method.body();
    for (Object content : oldBody.getContents()) {
        StringWriter writer = new StringWriter();
        JFormatter formatter = new JFormatter(writer);
        IJStatement statement = (IJStatement) content;
        statement.state(formatter);
        String statementString = writer.getBuffer().toString();
        if (statementString.startsWith(superCallStart)) {
            newBody.add(replacement);
        } else {
            newBody.add(statement);
        }
    }
}
Also used : StringWriter(java.io.StringWriter) IJStatement(com.helger.jcodemodel.IJStatement) JFormatter(com.helger.jcodemodel.JFormatter) JBlock(com.helger.jcodemodel.JBlock)

Example 30 with JBlock

use of com.helger.jcodemodel.JBlock in project androidannotations by androidannotations.

the class EComponentWithViewSupportHolder method setFindSupportFragmentByTag.

protected void setFindSupportFragmentByTag() {
    if (getProcessingEnvironment().getElementUtils().getTypeElement(CanonicalNameConstants.ANDROIDX_FRAGMENT) == null) {
        findSupportFragmentByTag = getGeneratedClass().method(PRIVATE, getClasses().SUPPORT_V4_FRAGMENT, "findSupportFragmentByTag");
    } else {
        findSupportFragmentByTag = getGeneratedClass().method(PRIVATE, getClasses().ANDROIDX_FRAGMENT, "findSupportFragmentByTag");
    }
    JVar tagParam = findSupportFragmentByTag.param(getClasses().STRING, "tag");
    JBlock body = findSupportFragmentByTag.body();
    AbstractJClass fragmentActivity = getFragmentActivity();
    body._if(getContextRef()._instanceof(fragmentActivity).not())._then()._return(_null());
    JVar activityVar = body.decl(fragmentActivity, "activity_", cast(fragmentActivity, getContextRef()));
    body._return(activityVar.invoke("getSupportFragmentManager").invoke("findFragmentByTag").arg(tagParam));
}
Also used : JBlock(com.helger.jcodemodel.JBlock) AbstractJClass(com.helger.jcodemodel.AbstractJClass) JVar(com.helger.jcodemodel.JVar)

Aggregations

JBlock (com.helger.jcodemodel.JBlock)155 JVar (com.helger.jcodemodel.JVar)86 JMethod (com.helger.jcodemodel.JMethod)75 AbstractJClass (com.helger.jcodemodel.AbstractJClass)40 JInvocation (com.helger.jcodemodel.JInvocation)38 IJExpression (com.helger.jcodemodel.IJExpression)31 ExecutableElement (javax.lang.model.element.ExecutableElement)26 JFieldRef (com.helger.jcodemodel.JFieldRef)19 JDefinedClass (com.helger.jcodemodel.JDefinedClass)15 VariableElement (javax.lang.model.element.VariableElement)15 JFieldVar (com.helger.jcodemodel.JFieldVar)13 TypeMirror (javax.lang.model.type.TypeMirror)13 JConditional (com.helger.jcodemodel.JConditional)10 JTryBlock (com.helger.jcodemodel.JTryBlock)9 JCatchBlock (com.helger.jcodemodel.JCatchBlock)4 TypeElement (javax.lang.model.element.TypeElement)3 PageChangeHolder (org.androidannotations.holder.PageChangeHolder)3 AbstractJType (com.helger.jcodemodel.AbstractJType)2 IJAssignmentTarget (com.helger.jcodemodel.IJAssignmentTarget)2 IJStatement (com.helger.jcodemodel.IJStatement)2