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