org.codehaus.groovy.ast.ClassNode.redirect()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(6.5k)|赞(0)|评价(0)|浏览(151)

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

ClassNode.redirect介绍

[英]Returns the ClassNode this ClassNode is redirecting to.
[中]返回此类节点重定向到的类节点。

代码示例

代码示例来源:origin: org.codehaus.groovy/groovy

public OptimizingBooleanExpression(final Expression expression, final ClassNode type) {
  super(expression);
  this.expression = expression;
  // we must use the redirect node, otherwise InnerClassNode would not have the "correct" type
  this.type = type.redirect();
}

代码示例来源:origin: org.codehaus.groovy/groovy

/**
 * Sets the superclass of this ClassNode
 */
public void setSuperClass(ClassNode superClass) {
  redirect().superClass = superClass;
}

代码示例来源:origin: org.codehaus.groovy/groovy

public List<PropertyNode> getProperties() {
  final ClassNode r = redirect();
  if (r.properties == null)
    r.properties = new ArrayList<PropertyNode> ();
  return r.properties;
}

代码示例来源:origin: org.codehaus.groovy/groovy

public static ClassNode getUnwrapper(ClassNode cn) {
  cn = cn.redirect();
  if (isPrimitiveType(cn)) return cn;
  ClassNode result = WRAPPER_TYPE_TO_PRIMITIVE_TYPE_MAP.get(cn);
  if (null != result) {
    return result;
  }
  return cn;
}

代码示例来源:origin: org.codehaus.groovy/groovy

private ClassNode(ClassNode componentType) {
  this(componentType.getName()+"[]", ACC_PUBLIC, ClassHelper.OBJECT_TYPE);
  this.componentType = componentType.redirect();
  isPrimaryNode=false;
}

代码示例来源:origin: org.codehaus.groovy/groovy

public void setInterfaces(ClassNode[] interfaces) {
  if (redirect!=null) {
    redirect().setInterfaces(interfaces);
  } else {
    this.interfaces = interfaces;
  }
}

代码示例来源:origin: org.codehaus.groovy/groovy

private boolean helperClassNotCreatedYet(final ClassNode traitReceiver) {
  return !traitReceiver.redirect().getInnerClasses().hasNext()
      && this.unit.getAST().getClasses().contains(traitReceiver.redirect());
}
private boolean isTraitSuperPropertyExpression(Expression exp) {

代码示例来源:origin: org.codehaus.groovy/groovy

public List<ConstructorNode> getDeclaredConstructors() {
  if (redirect != null) return redirect().getDeclaredConstructors();
  lazyClassInit();
  if (constructors == null)
    constructors = new ArrayList<ConstructorNode> ();
  return constructors;
}

代码示例来源:origin: org.codehaus.groovy/groovy

/**
 * Finds a field matching the given name in this class.
 *
 * @param name the name of the field of interest
 * @return the method matching the given name and parameters or null
 */
public FieldNode getDeclaredField(String name) {
  if (redirect != null) return redirect().getDeclaredField(name);
  lazyClassInit();
  return fieldIndex == null ? null : fieldIndex.get(name);
}

代码示例来源:origin: org.codehaus.groovy/groovy

/**
 * Detect whether a given ClassNode is a inner class (non-static).
 *
 * @param cNode the ClassNode of interest
 * @return true if the given node is a (non-static) inner class, else false
 */
public static boolean isInnerClass(ClassNode cNode) {
  return cNode.redirect().getOuterClass() != null
      && !Modifier.isStatic(cNode.getModifiers());
}

代码示例来源:origin: org.codehaus.groovy/groovy

public void addMethod(MethodNode node) {
  node.setDeclaringClass(this);
  ClassNode base = redirect();
  if (base.methodsList.isEmpty()) {
    base.methodsList = new ArrayList<MethodNode>();
  }
  base.methodsList.add(node);
  base.methods.put(node.getName(), node);
}

代码示例来源:origin: org.codehaus.groovy/groovy

/**
 * @return the array of interfaces which this ClassNode implements
 */
public ClassNode[] getInterfaces() {
  if (redirect!=null) return redirect().getInterfaces();
  lazyClassInit();
  return interfaces;
}

代码示例来源:origin: org.codehaus.groovy/groovy

public FieldNode addField(String name, int modifiers, ClassNode type, Expression initialValue) {
  FieldNode node = new FieldNode(name, modifiers, type, redirect(), initialValue);
  addField(node);
  return node;
}

代码示例来源:origin: org.codehaus.groovy/groovy

/**
 * @return the ClassNode of the super class of this type
 */
public ClassNode getSuperClass() {
  if (!lazyInitDone && !isResolved()) {
    throw new GroovyBugError("ClassNode#getSuperClass for "+getName()+" called before class resolving");
  }
  ClassNode sn = redirect().getUnresolvedSuperClass();
  if (sn!=null) sn=sn.redirect();
  return sn;
}

代码示例来源:origin: org.codehaus.groovy/groovy

public boolean equals(Object o) {
  if (redirect!=null) return redirect().equals(o);
  if (!(o instanceof ClassNode)) return false;
  ClassNode cn = (ClassNode) o;
  return (cn.getText().equals(getText()));
}

代码示例来源:origin: org.codehaus.groovy/groovy

public ClassNode getPlainNodeReference() {
  if (ClassHelper.isPrimitiveType(this)) return this;
  ClassNode n = new ClassNode(name, modifiers, superClass,null,null);
  n.isPrimaryNode = false;
  n.setRedirect(redirect());
  if (isArray()) {
    n.componentType = redirect().getComponentType();
  } 
  return n;
}

代码示例来源:origin: org.codehaus.groovy/groovy

public static ClassNode resolveClassNodeGenerics(Map<GenericsTypeName, GenericsType> resolvedPlaceholders, final Map<GenericsTypeName, GenericsType> placeholdersFromContext, ClassNode currentType) {
  ClassNode target = currentType.redirect();
  resolvedPlaceholders = new HashMap<GenericsTypeName, GenericsType>(resolvedPlaceholders);
  applyContextGenerics(resolvedPlaceholders, placeholdersFromContext);
  Map<GenericsTypeName, GenericsType> connections = new HashMap<GenericsTypeName, GenericsType>();
  extractGenericsConnections(connections, currentType, target);
  applyGenericsConnections(connections, resolvedPlaceholders);
  currentType = applyGenericsContext(resolvedPlaceholders, currentType);
  return currentType;
}

代码示例来源:origin: org.codehaus.groovy/groovy

private static List<AnnotationNode> getStoredTargetList(AnnotationNode aliasAnnotationUsage, SourceUnit source) {
  ClassNode alias = aliasAnnotationUsage.getClassNode().redirect();
  List<AnnotationNode> ret = getMeta(alias);
  return copy(ret, aliasAnnotationUsage);
}

代码示例来源:origin: org.codehaus.groovy/groovy

static Map<GenericsTypeName, GenericsType> applyGenericsContextToParameterClass(
    Map<GenericsTypeName, GenericsType> spec, ClassNode parameterUsage
) {
  GenericsType[] gts = parameterUsage.getGenericsTypes();
  if (gts == null) return Collections.EMPTY_MAP;
  GenericsType[] newGTs = applyGenericsContext(spec, gts);
  ClassNode newTarget = parameterUsage.redirect().getPlainNodeReference();
  newTarget.setGenericsTypes(newGTs);
  return GenericsUtils.extractPlaceholders(newTarget);
}

代码示例来源:origin: org.codehaus.groovy/groovy

public static boolean missesGenericsTypes(ClassNode cn) {
  if (cn.isArray()) return missesGenericsTypes(cn.getComponentType());
  GenericsType[] cnTypes = cn.getGenericsTypes();
  GenericsType[] rnTypes = cn.redirect().getGenericsTypes();
  if (rnTypes != null && cnTypes == null) return true;
  if (cnTypes != null) {
    for (GenericsType genericsType : cnTypes) {
      if (genericsType.isPlaceholder()) return true;
    }
  }
  return false;
}

相关文章

微信公众号

最新文章

更多

ClassNode类方法