本文整理了Java中com.helger.jcodemodel.AbstractJClass.staticInvoke()
方法的一些代码示例,展示了AbstractJClass.staticInvoke()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。AbstractJClass.staticInvoke()
方法的具体详情如下:
包路径:com.helger.jcodemodel.AbstractJClass
类名称: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());
}
内容来源于网络,如有侵权,请联系作者删除!