本文整理了Java中org.codehaus.groovy.ast.ClassNode.isArray()
方法的一些代码示例,展示了ClassNode.isArray()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ClassNode.isArray()
方法的具体详情如下:
包路径:org.codehaus.groovy.ast.ClassNode
类名称:ClassNode
方法名:isArray
暂无
代码示例来源:origin: org.codehaus.groovy/groovy
static boolean isVargs(Parameter[] params) {
if (params.length == 0) return false;
if (params[params.length - 1].getType().isArray()) return true;
return false;
}
代码示例来源:origin: org.codehaus.groovy/groovy
private static boolean isVargs(Parameter[] p) {
if (p.length==0) return false;
ClassNode clazz = p[p.length-1].getType();
return (clazz.isArray());
}
代码示例来源:origin: org.codehaus.groovy/groovy
private static String getStaticFieldName(ClassNode type) {
ClassNode componentType = type;
StringBuilder prefix = new StringBuilder();
for (; componentType.isArray(); componentType = componentType.getComponentType()) {
prefix.append("$");
}
if (prefix.length() != 0) prefix.insert(0, "array");
String name = prefix + "$class$" + makeFieldClassName(componentType);
return name;
}
代码示例来源:origin: org.codehaus.groovy/groovy
private String nameOf(ClassNode theType) {
StringBuilder ret = new StringBuilder();
if (theType.isArray()) {
ret.append(nameOf(theType.getComponentType()));
ret.append("[]");
} else {
ret.append(theType.getName());
}
return ret.toString();
}
代码示例来源:origin: org.codehaus.groovy/groovy
private static Tuple2<ClassNode, Integer> extractArrayInfo(ClassNode type) {
int dimension = 0;
do {
dimension++;
} while ((type = type.getComponentType()).isArray());
return new Tuple2<ClassNode, Integer>(type, dimension);
}
代码示例来源:origin: org.codehaus.groovy/groovy
private static String buildTypeName(ClassNode type) {
if (type.isArray()) {
return String.format("%sArray", buildTypeName(type.getComponentType()));
}
return type.getNameWithoutPackage();
}
代码示例来源:origin: org.codehaus.groovy/groovy
private boolean lastIsArray(List<Expression> argumentList, int pos) {
Expression last = argumentList.get(pos);
ClassNode type = controller.getTypeChooser().resolveType(last, controller.getClassNode());
return type.isArray();
}
代码示例来源:origin: org.codehaus.groovy/groovy
static String prettyPrintType(ClassNode type) {
if (type.isArray()) {
return prettyPrintType(type.getComponentType()) + "[]";
}
return type.toString(false);
}
代码示例来源:origin: org.codehaus.groovy/groovy
private static boolean isGenericsPlaceHolderOrArrayOf(ClassNode cn) {
if (cn.isArray()) return isGenericsPlaceHolderOrArrayOf(cn.getComponentType());
return cn.isGenericsPlaceHolder();
}
代码示例来源:origin: org.codehaus.groovy/groovy
private boolean isAssignable(ClassNode node, ClassNode testNode) {
if (node.isArray() && testNode.isArray()) {
return isArrayAssignable(node.getComponentType(), testNode.getComponentType());
}
if (testNode.isInterface()) {
if (node.equals(testNode) || node.implementsInterface(testNode)) return true;
}
return node.isDerivedFrom(testNode);
}
代码示例来源:origin: org.codehaus.groovy/groovy
private void printType(PrintWriter out, ClassNode type) {
if (type.isArray()) {
printType(out, type.getComponentType());
out.print("[]");
} else if (java5 && type.isGenericsPlaceHolder()) {
out.print(type.getGenericsTypes()[0].getName());
} else {
printGenericsBounds(out, type, false);
}
}
代码示例来源:origin: org.codehaus.groovy/groovy
private static ClassNode cleanType(ClassNode type) {
// todo: should this be directly handled by getPlainNodeReference?
if (type.isArray()) return cleanType(type.getComponentType()).makeArray();
return type.getPlainNodeReference();
}
代码示例来源:origin: org.codehaus.groovy/groovy
Expression transformListExpression(final ListExpression expr) {
MethodNode target = expr.getNodeMetaData(StaticTypesMarker.DIRECT_METHOD_CALL_TARGET);
if (target instanceof ConstructorNode) {
if (target.getDeclaringClass().isArray()) {
return transformArrayConstructor(expr, target);
}
return transformRegularConstructor(expr, target);
} else {
return transformer.superTransform(expr);
}
}
代码示例来源:origin: org.codehaus.groovy/groovy
private boolean compatibleArgumentType(ClassNode argumentType, ClassNode paramType) {
if (argumentType == null) return false;
if (ClassHelper.getWrapper(argumentType).equals(ClassHelper.getWrapper(paramType))) return true;
if (paramType.isInterface()) return argumentType.implementsInterface(paramType);
if (paramType.isArray() && argumentType.isArray())
return compatibleArgumentType(argumentType.getComponentType(), paramType.getComponentType());
return ClassHelper.getWrapper(argumentType).isDerivedFrom(ClassHelper.getWrapper(paramType));
}
代码示例来源:origin: org.codehaus.groovy/groovy
public static void doCast(MethodVisitor mv, ClassNode type) {
if (type == ClassHelper.OBJECT_TYPE) return;
if (ClassHelper.isPrimitiveType(type) && type != VOID_TYPE) {
unbox(mv, type);
} else {
mv.visitTypeInsn(
CHECKCAST,
type.isArray() ?
BytecodeHelper.getTypeDescription(type) :
BytecodeHelper.getClassInternalName(type.getName()));
}
}
代码示例来源: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 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;
}
代码示例来源:origin: org.codehaus.groovy/groovy
private static ClassNode makeRawType(final ClassNode receiver) {
if (receiver.isArray()) {
return makeRawType(receiver.getComponentType()).makeArray();
}
ClassNode raw = receiver.getPlainNodeReference();
raw.setUsingGenerics(false);
raw.setGenericsTypes(null);
return raw;
}
代码示例来源:origin: org.codehaus.groovy/groovy
public static String getClassInternalName(ClassNode t) {
if (t.isPrimaryClassNode() || t instanceof DecompiledClassNode) {
if (t.isArray()) return "[L"+getClassInternalName(t.getComponentType())+";";
return getClassInternalName(t.getName());
}
return getClassInternalName(t.getTypeClass());
}
代码示例来源:origin: org.codehaus.groovy/groovy
public void checkReturnType(ClassNode attrType, ASTNode node) {
if (attrType.isArray()) {
checkReturnType(attrType.getComponentType(), node);
} else if (ClassHelper.isPrimitiveType(attrType)) {
} else if (ClassHelper.STRING_TYPE.equals(attrType)) {
} else if (ClassHelper.CLASS_Type.equals(attrType)) {
} else if (attrType.isDerivedFrom(ClassHelper.Enum_Type)) {
} else if (isValidAnnotationClass(attrType)) {
} else {
addError("Unexpected return type " + attrType.getName(), node);
}
}
内容来源于网络,如有侵权,请联系作者删除!