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

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

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

AbstractJClass.narrow介绍

[英]"Narrows" a generic class to a concrete class by specifying a type argument.
.narrow(X) builds Set<X> from Set.
[中]通过指定类型参数,将泛型类“缩小”为具体类。
.narrow(X)Set生成Set<X>

代码示例

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

public AbstractJClass narrowGeneratedClass(AbstractJClass generatedClass, TypeMirror fromTypeArguments) {
  DeclaredType type = (DeclaredType) fromTypeArguments;
  for (TypeMirror param : type.getTypeArguments()) {
    AbstractJClass paramClass = typeMirrorToJClass(param);
    generatedClass = generatedClass.narrow(paramClass);
  }
  return generatedClass;
}

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

@Override
protected AbstractJClass getSuperClass() {
  AbstractJClass superClass = environment.getJClass(org.androidannotations.api.builder.ActivityIntentBuilder.class);
  return superClass.narrow(builderClass);
}

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

@Override
  protected AbstractJClass getSuperClass() {
    AbstractJClass superClass = getJClass(org.androidannotations.api.builder.ServiceIntentBuilder.class);
    return superClass.narrow(builderClass);
  }
}

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

private AbstractJClass typeMirrorToJClass(DeclaredType declaredType, Map<String, TypeMirror> substitute) {
  String declaredTypeName = declaredType.asElement().toString();
  AbstractJClass declaredClass = environment.getJClass(declaredTypeName);
  List<? extends TypeMirror> typeArguments = declaredType.getTypeArguments();
  List<AbstractJClass> typeArgumentJClasses = new ArrayList<>();
  for (TypeMirror typeArgument : typeArguments) {
    typeArgumentJClasses.add(typeMirrorToJClass(typeArgument, substitute));
  }
  if (typeArgumentJClasses.size() > 0) {
    declaredClass = declaredClass.narrow(typeArgumentJClasses);
  }
  return declaredClass;
}

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

public AbstractJClass narrow(AbstractJClass toNarrow) {
  List<AbstractJClass> classes = new ArrayList<>();
  for (JTypeVar type : generatedClass.typeParams()) {
    classes.add(getCodeModel().directClass(type.name()));
  }
  if (classes.isEmpty()) {
    return toNarrow;
  }
  return toNarrow.narrow(classes);
}

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

@Override
  protected AbstractJClass getListenerTargetClass(EComponentWithViewSupportHolder holder) {
    return getClasses().ADAPTER_VIEW.narrow(getCodeModel().wildcard());
  }
}

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

private void createEditorClass() throws JClassAlreadyExistsException {
  String interfaceSimpleName = annotatedElement.getSimpleName().toString();
  editorClass = generatedClass._class(PUBLIC | STATIC | FINAL, interfaceSimpleName + "Editor" + classSuffix());
  editorClass._extends(getJClass(EditorHelper.class).narrow(editorClass));
  createEditorConstructor();
}

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

@Override
protected AbstractJClass getListenerTargetClass(EComponentWithViewSupportHolder holder) {
  return getClasses().ADAPTER_VIEW.narrow(getCodeModel().wildcard());
}

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

@Override
  protected AbstractJClass getListenerTargetClass(EComponentWithViewSupportHolder holder) {
    return getClasses().ADAPTER_VIEW.narrow(getCodeModel().wildcard());
  }
}

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

public void createEditorFieldMethods(ExecutableElement method, IJExpression keyExpression) {
  String returnType = method.getReturnType().toString();
  EditorFieldHolder editorFieldHolder = EDITOR_FIELD_BY_TYPE.get(returnType);
  AbstractJClass editorFieldClass = getJClass(editorFieldHolder.fieldClass);
  String fieldName = method.getSimpleName().toString();
  JMethod editorFieldMethod = editorClass.method(PUBLIC, editorFieldClass.narrow(editorClass), fieldName);
  String docComment = getProcessingEnvironment().getElementUtils().getDocComment(method);
  codeModelHelper.addTrimmedDocComment(editorFieldMethod, docComment);
  editorFieldMethod.body()._return(JExpr.invoke(editorFieldHolder.fieldMethodName).arg(keyExpression));
}

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

private String getInvocationName(JFieldVar field) {
  AbstractJClass listOfStrings = getClasses().LIST.narrow(getClasses().STRING);
  if (field.type().fullName().equals(listOfStrings.fullName())) {
    return "contains";
  }
  return "equals";
}

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

private void fireEvent(JFieldVar eventManager, JBlock body, AbstractJClass eventClass, IJExpression... eventArguments) {
  AbstractJClass actualEventClass = eventClass;
  if (eventClass.fullName().startsWith("roboguice.context.event")) {
    actualEventClass = eventClass.narrow(getClasses().ACTIVITY);
  }
  JInvocation newEvent = _new(actualEventClass);
  newEvent.arg(_this());
  for (IJExpression eventArgument : eventArguments) {
    newEvent.arg(eventArgument);
  }
  body.invoke(eventManager, "fire").arg(newEvent);
}

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

public JFieldVar getScopedObjectsField() {
  if (scopedObjects == null) {
    AbstractJClass keyWildCard = getJClass(RoboGuiceClasses.KEY).narrow(getCodeModel().wildcard());
    AbstractJClass scopedHashMap = environment().getClasses().HASH_MAP.narrow(keyWildCard, environment().getClasses().OBJECT);
    scopedObjects = getGeneratedClass().field(JMod.PROTECTED, scopedHashMap, "scopedObjects" + generationSuffix());
    scopedObjects.assign(JExpr._new(scopedHashMap));
  }
  return scopedObjects;
}

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

public IJExpression createParameterizedTypeReferenceAnonymousSubclassInstance(TypeMirror returnType) {
  AbstractJClass narrowedTypeReference = getEnvironment().getJClass(RestSpringClasses.PARAMETERIZED_TYPE_REFERENCE).narrow(codeModelHelper.typeMirrorToJClass(returnType));
  JDefinedClass anonymousClass = getEnvironment().getCodeModel().anonymousClass(narrowedTypeReference);
  return JExpr._new(anonymousClass);
}

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

private void setOnBuildHeadersBlock() {
  JMethod method = getGeneratedClass().method(PUBLIC, codeModel().VOID, "onBuildHeaders");
  method.annotate(Override.class);
  onBuildHeadersBlock = method.body();
  onBuildHeadersTargetParam = method.param(getClasses().LIST.narrow(getClasses().PREFERENCE_ACTIVITY_HEADER), "target");
}

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

private void setAvailableHeadersField() {
  AbstractJClass stringClass = getClasses().STRING;
  AbstractJClass mapClass = getClasses().HASH_MAP.narrow(stringClass, stringClass);
  availableHeadersField = getGeneratedClass().field(JMod.PRIVATE, mapClass, "availableHeaders");
  getInit().body().assign(availableHeadersField, _new(mapClass));
}

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

private void setAvailableCookiesField() {
  AbstractJClass stringClass = getClasses().STRING;
  AbstractJClass mapClass = getClasses().HASH_MAP.narrow(stringClass, stringClass);
  availableCookiesField = getGeneratedClass().field(JMod.PRIVATE, mapClass, "availableCookies");
  getInit().body().assign(availableCookiesField, _new(mapClass));
}

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

private void setFragmentBuilder() throws JClassAlreadyExistsException {
  fragmentBuilderClass = generatedClass._class(PUBLIC | STATIC, "FragmentBuilder" + generationSuffix());
  narrowBuilderClass = narrow(fragmentBuilderClass);
  codeModelHelper.generify(fragmentBuilderClass, annotatedElement);
  AbstractJClass superClass = getJClass(org.androidannotations.api.builder.FragmentBuilder.class);
  superClass = superClass.narrow(narrowBuilderClass, getAnnotatedClass());
  fragmentBuilderClass._extends(superClass);
  fragmentArgumentsBuilderField = ref("args");
  setFragmentBuilderBuild();
  setFragmentBuilderCreate();
}

代码示例来源: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

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());
}

相关文章