com.helger.jcodemodel.AbstractJClass.staticInvoke()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(13.5k)|赞(0)|评价(0)|浏览(92)

本文整理了Java中com.helger.jcodemodel.AbstractJClass.staticInvoke()方法的一些代码示例,展示了AbstractJClass.staticInvoke()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。AbstractJClass.staticInvoke()方法的具体详情如下:
包路径:com.helger.jcodemodel.AbstractJClass
类名称:AbstractJClass
方法名:staticInvoke

AbstractJClass.staticInvoke介绍

[英]Generates a static method invocation.
[中]生成静态方法调用。

代码示例

代码示例来源:origin: androidannotations/androidannotations

public JInvocation newBeanOrEBean(DeclaredType beanType, JVar contextVar) {
  if (beanType.asElement().getAnnotation(EBean.class) != null) {
    String typeQualifiedName = beanType.toString();
    AbstractJClass injectedClass = environment.getJClass(typeQualifiedName + classSuffix());
    return injectedClass.staticInvoke(EBeanHolder.GET_INSTANCE_METHOD_NAME).arg(contextVar);
  } else {
    return _new(environment.getJClass(beanType.toString()));
  }
}

代码示例来源:origin: androidannotations/androidannotations

@Override
public void assignValue(JBlock targetBlock, IJAssignmentTarget fieldRef, EComponentHolder holder, Element element, Element param) {
  String applicationQualifiedName = param.asType().toString();
  AbstractJClass applicationClass = getJClass(applicationQualifiedName + classSuffix());
  targetBlock.add(fieldRef.assign(applicationClass.staticInvoke(EApplicationHolder.GET_APPLICATION_INSTANCE)));
}

代码示例来源:origin: androidannotations/androidannotations

@Override
  protected IJExpression getInstanceInvocation(EComponentHolder holder, JFieldRef idRef, IJAssignmentTarget fieldRef, JBlock targetBlock) {
    return getClasses().ANIMATION_UTILS.staticInvoke("loadAnimation").arg(holder.getContextRef()).arg(idRef);
  }
}

代码示例来源:origin: androidannotations/androidannotations

IJExpression getDataBindingInflationExpression(IJExpression contentViewId, IJExpression container, boolean attachToRoot) {
    AbstractJClass dataBindingUtil = getClasses().DATA_BINDING_UTIL;
    if (getEnvironment().getProcessingEnvironment().getElementUtils().getTypeElement(CanonicalNameConstants.ANDROIDX_DATA_BINDING_UTIL) != null) {
      dataBindingUtil = getClasses().ANDROIDX_DATA_BINDING_UTIL;
    }
    return dataBindingUtil.staticInvoke("inflate") //
        .arg(getClasses().LAYOUT_INFLATER.staticInvoke("from").arg(holder.getContextRef())) //
        .arg(contentViewId) //
        .arg(container) //
        .arg(attachToRoot);
  }
}

代码示例来源:origin: androidannotations/androidannotations

public IJStatement getExpressionToSaveFromField(IJExpression saveStateBundleParam, IJExpression fieldName, IJExpression variableRef) {
    IJExpression refExpression = variableRef;
    if (parcelerBean) {
      refExpression = environment.getJClass(CanonicalNameConstants.PARCELS_UTILITY_CLASS).staticInvoke("wrap").arg(refExpression);
    }
    return JExpr.invoke(saveStateBundleParam, methodNameToSave).arg(fieldName).arg(refExpression);
  }
}

代码示例来源:origin: androidannotations/androidannotations

public JVar replacePreviousNotifierWithNull(JBlock block) {
  AbstractJClass notifierClass = holder.getEnvironment().getJClass(OnViewChangedNotifier.class);
  return block.decl(notifierClass, "previousNotifier", notifierClass.staticInvoke("replaceNotifier").arg(_null()));
}

代码示例来源:origin: androidannotations/androidannotations

/**
 * Add the pre-check to see if we are already in the UI thread.
 *
 * @param delegatingMethod
 * @param holder
 * @throws JClassAlreadyExistsException
 */
private void addUIThreadCheck(JMethod delegatingMethod, JBlock previousBody, EComponentHolder holder) throws JClassAlreadyExistsException {
  // Get the Thread and Looper class.
  AbstractJClass tClass = getClasses().THREAD;
  AbstractJClass lClass = getClasses().LOOPER;
  // invoke the methods.
  IJExpression lhs = tClass.staticInvoke(METHOD_CUR_THREAD);
  IJExpression rhs = lClass.staticInvoke(METHOD_MAIN_LOOPER).invoke(METHOD_GET_THREAD);
  // create the conditional and the block.
  JConditional con = delegatingMethod.body()._if(JOp.eq(lhs, rhs));
  JBlock thenBlock = con._then().add(previousBody);
  thenBlock._return();
}

代码示例来源:origin: androidannotations/androidannotations

@Override
public void assignValue(JBlock targetBlock, IJAssignmentTarget fieldRef, EComponentHolder holder, Element element, Element param) {
  TypeMirror typeMirror = annotationHelper.extractAnnotationClassParameter(element);
  if (typeMirror == null) {
    typeMirror = param.asType();
    typeMirror = getProcessingEnvironment().getTypeUtils().erasure(typeMirror);
  }
  String typeQualifiedName = typeMirror.toString();
  AbstractJClass injectedClass = getJClass(annotationHelper.generatedClassQualifiedNameFromQualifiedName(typeQualifiedName));
  JInvocation beanInstance = injectedClass.staticInvoke(EBeanHolder.GET_INSTANCE_METHOD_NAME).arg(holder.getContextRef());
  IJStatement assignment = fieldRef.assign(beanInstance);
  if (param.getKind() == ElementKind.FIELD) {
    boolean hasNonConfigurationInstanceAnnotation = element.getAnnotation(NonConfigurationInstance.class) != null;
    if (hasNonConfigurationInstanceAnnotation) {
      JConditional conditional = targetBlock._if(fieldRef.eq(_null()));
      conditional._then().add(assignment);
      assignment = conditional;
    }
  }
  targetBlock.add(assignment);
}

代码示例来源:origin: androidannotations/androidannotations

@Override
  protected IJExpression getInstanceInvocation(EComponentHolder holder, JFieldRef idRef, IJAssignmentTarget fieldRef, JBlock targetBlock) {
    return getClasses().HTML.staticInvoke("fromHtml").arg(holder.getResourcesRef().invoke(AndroidRes.HTML.getResourceMethodName()).arg(idRef));
  }
}

代码示例来源:origin: androidannotations/androidannotations

@Override
  public void process(Element element, EComponentHolder holder) throws Exception {
    ExecutableElement executableElement = (ExecutableElement) element;

    JMethod delegatingMethod = codeModelHelper.overrideAnnotatedMethod(executableElement, holder);

    AbstractJClass bgExecutor = getJClass(BackgroundExecutor.class);

    SupposeBackground annotation = element.getAnnotation(SupposeBackground.class);
    String[] serial = annotation.serial();
    JInvocation invocation = bgExecutor.staticInvoke(METHOD_CHECK_BG_THREAD);
    for (String s : serial) {
      invocation.arg(lit(s));
    }

    JBlock body = delegatingMethod.body();
    body.pos(0);
    body.add(invocation);
    body.pos(body.getContents().size());
  }
}

代码示例来源:origin: androidannotations/androidannotations

@Override
  public void process(Element element, EComponentWithViewSupportHolder holder) {
    String fieldName = element.getSimpleName().toString();

    JFieldRef idRef = annotationHelper.extractOneAnnotationFieldRef(element, IRClass.Res.STRING, true);

    JBlock methodBody = holder.getOnViewChangedBodyAfterInjectionBlock();
    methodBody //
        ._if(ref(fieldName).ne(_null())) //
        ._then() //
        .invoke(ref(fieldName), "setText").arg(getClasses().HTML.staticInvoke("fromHtml").arg(holder.getContextRef().invoke("getString").arg(idRef)));
  }
}

代码示例来源:origin: androidannotations/androidannotations

private JFieldVar setDatabaseHelperRef(TypeMirror databaseHelperTypeMirror) {
  AbstractJClass databaseHelperClass = getJClass(databaseHelperTypeMirror.toString());
  String fieldName = CaseHelper.lowerCaseFirst(databaseHelperClass.name()) + ModelConstants.generationSuffix();
  JFieldVar databaseHelperRef = getGeneratedClass().field(PRIVATE, databaseHelperClass, fieldName);
  databaseHelperRefs.put(databaseHelperTypeMirror, databaseHelperRef);
  IJExpression dbHelperClass = databaseHelperClass.dotclass();
  holder().getInitBodyInjectionBlock().assign(databaseHelperRef, //
      getJClass(OrmLiteClasses.OPEN_HELPER_MANAGER).staticInvoke("getHelper").arg(holder().getContextRef()).arg(dbHelperClass));
  return databaseHelperRef;
}

代码示例来源:origin: androidannotations/androidannotations

public JVar replacePreviousNotifier(JBlock block) {
  AbstractJClass notifierClass = holder.getEnvironment().getJClass(OnViewChangedNotifier.class);
  if (notifier == null) {
    notifier = holder.getGeneratedClass().field(PRIVATE | FINAL, notifierClass, "onViewChangedNotifier" + generationSuffix(), _new(notifierClass));
    implementHasViewsInHolder();
  }
  return block.decl(notifierClass, "previousNotifier", notifierClass.staticInvoke("replaceNotifier").arg(notifier));
}

代码示例来源:origin: androidannotations/androidannotations

@Override
public void process(Element element, EComponentHolder holder) throws Exception {
  ExecutableElement executableElement = (ExecutableElement) element;
  JMethod delegatingMethod = codeModelHelper.overrideAnnotatedMethod(executableElement, holder);
  JBlock previousBody = codeModelHelper.removeBody(delegatingMethod);
  JDefinedClass anonymousRunnableClass = codeModelHelper.createDelegatingAnonymousRunnableClass(previousBody);
  UiThread annotation = element.getAnnotation(UiThread.class);
  long delay = annotation.delay();
  UiThread.Propagation propagation = annotation.propagation();
  if (delay == 0 && propagation == UiThread.Propagation.REUSE) {
    // Put in the check for the UI thread.
    addUIThreadCheck(delegatingMethod, previousBody, holder);
  }
  delegatingMethod.body().add(getJClass(UiThreadExecutor.class).staticInvoke(METHOD_RUN_TASK) //
      .arg(annotation.id()) //
      .arg(_new(anonymousRunnableClass)) //
      .arg(lit(delay)));
}

代码示例来源:origin: androidannotations/androidannotations

@Override
protected IJExpression getInstanceInvocation(EComponentHolder holder, JFieldRef idRef, IJAssignmentTarget fieldRef, JBlock targetBlock) {
  if (hasTargetMethodInAndroidxContextCompat()) {
    return getClasses().ANDROIDX_CONTEXT_COMPAT.staticInvoke(androidRes.getResourceMethodName()).arg(holder.getContextRef()).arg(idRef);
  } else if (hasTargetMethodInContextCompat()) {
    return getClasses().CONTEXT_COMPAT.staticInvoke(androidRes.getResourceMethodName()).arg(holder.getContextRef()).arg(idRef);
  } else if (shouldUseContextMethod()) {
    return holder.getContextRef().invoke(androidRes.getResourceMethodName()).arg(idRef);
  } else if (!shouldUseContextMethod() && hasTargetMethodInContext()) {
    return createCallWithIfGuard(holder, idRef, fieldRef, targetBlock);
  } else {
    return invoke(holder.getResourcesRef(), androidRes.getResourceMethodName()).arg(idRef);
  }
}

代码示例来源:origin: androidannotations/androidannotations

private JFieldVar createStaticField(EReceiverHolder holder, String prefix, String methodName, String[] values) {
  String staticFieldName = CaseHelper.camelCaseToUpperSnakeCase(prefix, methodName, null);
  if (values == null || values.length == 0) {
    return null;
  } else if (values.length == 1) {
    return holder.getGeneratedClass().field(PUBLIC | STATIC | FINAL, getClasses().STRING, staticFieldName, lit(values[0]));
  }
  JInvocation asListInvoke = getClasses().ARRAYS.staticInvoke("asList");
  for (String scheme : values) {
    asListInvoke.arg(scheme);
  }
  AbstractJClass listOfStrings = getClasses().LIST.narrow(getClasses().STRING);
  return holder.getGeneratedClass().field(PUBLIC | STATIC | FINAL, listOfStrings, staticFieldName, asListInvoke);
}

代码示例来源:origin: androidannotations/androidannotations

@Override
public void assignValue(JBlock targetBlock, IJAssignmentTarget fieldRef, EBeanHolder holder, Element element, Element param) {
  TypeMirror elementType = param.asType();
  String typeQualifiedName = elementType.toString();
  IJExpression contextRef = holder.getContextRef();
  if (CanonicalNameConstants.CONTEXT.equals(typeQualifiedName)) {
    targetBlock.add(fieldRef.assign(contextRef));
  } else {
    AbstractJClass extendingContextClass = getEnvironment().getJClass(typeQualifiedName);
    JConditional cond = getInvocationBlock(holder)._if(holder.getContextRef()._instanceof(extendingContextClass));
    cond._then().add(fieldRef.assign(cast(extendingContextClass, holder.getContextRef())));
    JInvocation warningInvoke = getClasses().LOG.staticInvoke("w");
    warningInvoke.arg(logTagForClassHolder(holder));
    warningInvoke.arg(lit("Due to Context class ").plus(holder.getContextRef().invoke("getClass").invoke("getSimpleName"))
        .plus(lit(", the @RootContext " + extendingContextClass.name() + " won't be populated")));
    cond._else().add(warningInvoke);
  }
}

代码示例来源:origin: androidannotations/androidannotations

@Override
  public void process(Element element, EActivityHolder holder) throws Exception {
    JInvocation viewServerInvocation = getClasses().VIEW_SERVER.staticInvoke("get").arg(_this());

    holder.getOnViewChangedBodyInjectionBlock().invoke(viewServerInvocation, "addWindow").arg(_this());
    holder.getOnDestroyAfterSuperBlock().invoke(viewServerInvocation, "removeWindow").arg(_this());
    holder.getOnResumeAfterSuperBlock().invoke(viewServerInvocation, "setFocusedWindow").arg(_this());
  }
}

代码示例来源:origin: androidannotations/androidannotations

private void onDestroyMethod(EActivityHolder holder, JFieldVar eventManager) {
  JBlock onDestroyBlock = new JBlock().bracesRequired(false).indentRequired(false);
  JTryBlock tryBlock = onDestroyBlock._try();
  fireEvent(eventManager, tryBlock.body(), getJClass(RoboGuiceClasses.ON_DESTROY_EVENT));
  JBlock finallyBody = tryBlock._finally();
  JTryBlock tryInFinally = finallyBody._try();
  tryInFinally.body().add(getJClass(RoboGuiceClasses.ROBO_GUICE).staticInvoke("destroyInjector").arg(_this()));
  tryInFinally._finally().invoke(_super(), "onDestroy");
  JMethod onDestroy = holder.getOnDestroy();
  codeModelHelper.replaceSuperCall(onDestroy, onDestroyBlock);
}

代码示例来源:origin: androidannotations/androidannotations

private void beforeCreateMethod(EActivityHolder holder, JFieldVar scope, JFieldVar scopedObjects, JFieldVar eventManager) {
  JBlock body = holder.getInitBody();
  AbstractJClass keyWildCard = getJClass(RoboGuiceClasses.KEY).narrow(getCodeModel().wildcard());
  AbstractJClass scopedHashMap = getClasses().HASH_MAP.narrow(keyWildCard, getClasses().OBJECT);
  body.assign(scopedObjects, JExpr._new(scopedHashMap));
  JVar injector = body.decl(getJClass(RoboGuiceClasses.ROBO_INJECTOR), "injector_", getJClass(RoboGuiceClasses.ROBO_GUICE).staticInvoke("getInjector").arg(_this()));
  body.assign(scope, invoke(injector, "getInstance").arg(getJClass(RoboGuiceClasses.CONTEXT_SCOPE).dotclass()));
  body.assign(eventManager, invoke(injector, "getInstance").arg(getJClass(RoboGuiceClasses.EVENT_MANAGER).dotclass()));
  body.add(injector.invoke("injectMembersWithoutViews").arg(_this()));
  fireEvent(eventManager, body, getJClass(RoboGuiceClasses.ON_CREATE_EVENT), holder.getInitSavedInstanceParam());
}

相关文章