com.helger.jcodemodel.AbstractJClass类的使用及代码示例

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

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

AbstractJClass介绍

[英]Represents a Java reference type, such as a class, an interface, an enum, an array type, a parameterized type.

To be exact, this object represents an "use" of a reference type, not necessarily a declaration of it, which is modeled as JDefinedClass.
[中]表示Java引用类型,例如类、接口、枚举、数组类型和参数化类型。
确切地说,这个对象表示引用类型的“使用”,而不一定是它的声明,它被建模为JDefinedClass。

代码示例

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

public IJExpression getExpressionToRestoreFromBundle(AbstractJClass variableClass, IJExpression bundle, IJExpression extraKey, JMethod method) {
  IJExpression expressionToRestore;
  if (methodNameToRestore.equals("getParcelableArray")) {
    AbstractJClass erasure;
    if (upperBound != null) {
      erasure = codeModelHelper.typeMirrorToJClass(upperBound).erasure().array();
    } else {
      erasure = variableClass.elementType().erasure().array();
    }
    expressionToRestore = environment.getJClass(org.androidannotations.api.bundle.BundleHelper.class).staticInvoke("getParcelableArray").arg(bundle).arg(extraKey).arg(erasure.dotclass());
  } else {
    expressionToRestore = JExpr.invoke(bundle, methodNameToRestore).arg(extraKey);
  }
  if (parcelerBean) {
    expressionToRestore = environment.getJClass(CanonicalNameConstants.PARCELS_UTILITY_CLASS).staticInvoke("unwrap").arg(expressionToRestore);
  }
  if (restoreCallNeedCastStatement) {
    expressionToRestore = JExpr.cast(variableClass, expressionToRestore);
    if (restoreCallNeedsSuppressWarning) {
      codeModelHelper.addSuppressWarnings(method, "unchecked");
    }
  }
  return expressionToRestore;
}

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

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

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

protected String plainName(AbstractJClass jClass) {
  String plainName = jClass.erasure().name();
  List<? extends AbstractJClass> typeParameters = jClass.getTypeParameters();
  if (typeParameters.size() > 0) {
    plainName += "_";
    for (AbstractJClass typeParameter : typeParameters) {
      plainName += plainName(typeParameter);
    }
  }
  return plainName;
}

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

private AbstractJClass typeMirrorToJClass(WildcardType wildcardType, Map<String, TypeMirror> substitute) {
  TypeMirror bound = wildcardType.getExtendsBound();
  if (bound == null) {
    bound = wildcardType.getSuperBound();
    if (bound == null) {
      return environment.getClasses().OBJECT.wildcardExtends();
    }
    return typeMirrorToJClass(bound, substitute).wildcardSuper();
  }
  TypeMirror extendsBound = wildcardType.getExtendsBound();
  if (extendsBound == null) {
    return environment.getClasses().OBJECT.wildcardExtends();
  } else {
    return typeMirrorToJClass(extendsBound, substitute).wildcardExtends();
  }
}

代码示例来源:origin: com.github.sviperll/adt4j

if (wrapperClass == null)
  throw new NullPointerException("wrapperClass annotation argument should never be null");
String wrapperClassFullName = wrapperClass.fullName();
if (wrapperClassFullName == null)
  throw new NullPointerException("wrapperClass.fullName() is null");
  AbstractJClass wrapperClassErasure = wrapperClass.erasure();
  if (wrapperClassErasure instanceof JDefinedClass) {
    JDefinedClass definition = (JDefinedClass)wrapperClassErasure;
    JAnnotationUse wrapsGeneratedAnnotation = null;
    for (JAnnotationUse wrapperAnnotaion: definition.annotations()) {
      String annotationClassFullName = wrapperAnnotaion.getAnnotationClass().erasure().fullName();
      if (annotationClassFullName != null && annotationClassFullName.equals(WrapsGeneratedValueClass.class.getName())) {
        wrapsGeneratedAnnotation = wrapperAnnotaion;
    else {
      AbstractJClass visitor = wrapsGeneratedAnnotation.getParam("visitor", AbstractJClass.class);
      if (visitor == null || visitor.fullName() == null || !visitor.fullName().equals(visitorDefinition.qualifiedName()))
        generation.reportError("@" + WrapsGeneratedValueClass.class.getName() + " annotation should have " + visitorDefinition.qualifiedName() + " as visitor argument");
    generation.reportError("You shouldn't define className when wrapperClass is used. Generated class name is derived from wrapper class' extends clause.");
  } else {
    AbstractJClass extendedClass = wrapperClass._extends();
    boolean extendedClassError = false;
    if (extendedClass != null) {
      if (extendedClass.isError()) {
        className = extendedClass.name();
      } else {
        if (valueClass == null) {

代码示例来源: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: com.helger/jcodemodel

if (thisClass == thisClass._package ().owner ().ref (Object.class))
 return true;
if (thisClass.erasure ().equals (thatClass.erasure ()))
 if (!thisClass.isParameterized ())
  return true;
 if (!thatClass.isParameterized ())
  return bAllowsRawTypeUnchekedConversion;
 for (int i = 0; i < thisClass.getTypeParameters ().size (); i++)
  final AbstractJClass thisParameter = thisClass.getTypeParameters ().get (i);
  final AbstractJClass thatParameter = thatClass.getTypeParameters ().get (i);
     return false;
    if (thisWildcard.boundMode () == EWildcardBoundMode.EXTENDS)
     return thisWildcard.bound ().isAssignableFrom (thatWildcard.bound (), false);
    if (thisWildcard.boundMode () == EWildcardBoundMode.SUPER)
     return thatWildcard.bound ().isAssignableFrom (thisWildcard.bound (), false);
    throw new IllegalStateException ("Unsupported wildcard bound mode: " + thisWildcard.boundMode ());
    return thisWildcard.bound ().isAssignableFrom (thatParameter, false);
   if (thisWildcard.boundMode () == EWildcardBoundMode.SUPER)
    return thatParameter.isAssignableFrom (thisWildcard.bound (), false);
   throw new IllegalStateException ("Unsupported wildcard bound mode: " + thisWildcard.boundMode ());
final AbstractJClass thatClassBase = thatClass._extends ();

代码示例来源:origin: com.helger/jcodemodel

aReference.fullName () +
           ", " +
           aClassToBeWritten.fullName () +
 aRealReference = aRealReference.erasure ();
final AbstractJClass aOuter = aRealReference.outer ();
if (aOuter != null)
 if (aRealReference.name ().contains (aOuter.name ()))

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

protected IJExpression addResultCallMethod(IJExpression exchangeCall, AbstractJClass methodReturnClass) {
  if (methodReturnClass != null && !methodReturnClass.fullName().startsWith(RESPONSE_ENTITY)) {
    return JExpr.invoke(exchangeCall, "getBody");
  }
  return exchangeCall;
}

代码示例来源: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());
}

代码示例来源: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: com.github.sviperll/adt4j

public static AbstractJType substitute(AbstractJType type, JTypeVar typeVariable, AbstractJType variableValue) {
  if (type == typeVariable)
    return variableValue;
  else if (!(type instanceof AbstractJClass)) {
    return type;
  } else {
    if (type.isArray())
      return substitute(type.elementType(), typeVariable, variableValue).array();
    else if (type instanceof JTypeWildcard) {
      JTypeWildcard wildcard = (JTypeWildcard)type;
      AbstractJClass bound = (AbstractJClass)substitute(wildcard.bound(), typeVariable, variableValue);
      return bound.wildcard(wildcard.boundMode());
    } else {
      /*
       * When we get type with type-parameters we should substitute
       * type-parameters.
       */
      AbstractJClass genericType = (AbstractJClass)type;
      if (genericType.getTypeParameters().isEmpty()) {
        return genericType;
      } else {
        AbstractJClass result = genericType.erasure();
        for (AbstractJClass typeArgument: genericType.getTypeParameters()) {
          result = result.narrow(substitute(typeArgument, typeVariable, variableValue));
        }
        return result;
      }
    }
  }
}

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

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: com.helger/jcodemodel

private boolean _collectCausesNoAmbiguities (@Nonnull final AbstractJClass aReference,
                       @Nonnull final JDefinedClass aClassToBeWritten)
{
 if (m_bDebugImport)
  System.out.println ("_collectCausesNoAmbiguities(" +
            aReference.fullName () +
            ", " +
            aClassToBeWritten.fullName () +
            ")");
 final NameUsage aUsages = m_aCollectedReferences.get (aReference.name ());
 if (aUsages == null)
  return true;
 return !aUsages.isAmbiguousIn (aClassToBeWritten) && aUsages.containsReferencedType (aReference);
}

代码示例来源:origin: com.github.sviperll/adt4j

public boolean isComparable(AbstractJType type) {
  if (type.isPrimitive() || type.isArray())
    return type.isPrimitive() || type.isArray() && isComparable(type.elementType());
  else if (type instanceof AbstractJClass) {
    AbstractJClass klass = (AbstractJClass)type;
    boolean result = _Comparable.narrow(klass.wildcardSuper()).isAssignableFrom(klass);
    return result;
  } else
    throw new IllegalStateException("Unexpected jcodemodel type: " + type);
}

代码示例来源:origin: com.helger/jcodemodel

public final AbstractJClass getBaseClass (@Nonnull final AbstractJClass aBaseType)
 if (erasure ().equals (aBaseType))
  return this;
 final AbstractJClass b = _extends ();
 if (b != null)
  final AbstractJClass bc = b.getBaseClass (aBaseType);
  if (bc != null)
   return bc;
 final Iterator <AbstractJClass> itfs = _implements ();
 while (itfs.hasNext ())
  final AbstractJClass bc = itfs.next ().getBaseClass (aBaseType);
  if (bc != null)
   return bc;

代码示例来源:origin: com.github.sviperll/adt4j-core

private AbstractJClass narrowed(AbstractJClass usedDataType, AbstractJType resultType, AbstractJType exceptionType, AbstractJType selfType) {
  Iterator<? extends AbstractJClass> dataTypeArgumentIterator = usedDataType.getTypeParameters().iterator();
  AbstractJClass result = visitorInterfaceModel;
  for (JTypeVar typeVariable: visitorInterfaceModel.typeParams()) {
    if (typeParameters.isSpecial(typeVariable))
      result = result.narrow(typeParameters.substituteSpecialType(typeVariable, usedDataType, resultType, exceptionType));
    else
      result = result.narrow(dataTypeArgumentIterator.next());
  }
  return result;
}

代码示例来源:origin: com.helger/jcodemodel

@Override
public String name ()
{
 final StringBuilder buf = new StringBuilder ();
 buf.append (m_aBasis.name ()).append ('<');
 boolean bFirst = true;
 for (final AbstractJClass c : m_aArgs)
 {
  if (bFirst)
   bFirst = false;
  else
   buf.append (',');
  buf.append (c.name ());
 }
 buf.append ('>');
 return buf.toString ();
}

相关文章