Package org.codehaus.groovy.ast

Examples of org.codehaus.groovy.ast.GenericsType


    private ClassNode makeThis() {
        ClassNode ret = typeCheckingContext.getEnclosingClassNode();
        if (typeCheckingContext.isInStaticContext) {
            ClassNode staticRet = CLASS_Type.getPlainNodeReference();
            GenericsType gt = new GenericsType(ret);
            staticRet.setGenericsTypes(new GenericsType[]{gt});
            ret = staticRet;
        }
        return ret;
    }
View Full Code Here


                // every element was the null constant
                return listType;
            }
            ClassNode superType = getWrapper(lowestUpperBound(nodes)); // to be used in generics, type must be boxed
            ClassNode inferred = listType.getPlainNodeReference();
            inferred.setGenericsTypes(new GenericsType[]{new GenericsType(wrapTypeIfNecessary(superType))});
            return inferred;
        }
        return listType;
    }
View Full Code Here

            }
            ClassNode keyType = getWrapper(lowestUpperBound(keyTypes))// to be used in generics, type must be boxed
            ClassNode valueType = getWrapper(lowestUpperBound(valueTypes))// to be used in generics, type must be boxed
            if (!OBJECT_TYPE.equals(keyType) || !OBJECT_TYPE.equals(valueType)) {
                ClassNode inferred = mapType.getPlainNodeReference();
                inferred.setGenericsTypes(new GenericsType[]{new GenericsType(wrapTypeIfNecessary(keyType)), new GenericsType(wrapTypeIfNecessary(valueType))});
                return inferred;
            }
        }
        return mapType;
    }
View Full Code Here

                   while (expected.isArray()) {
                       expected = expected.getComponentType();
                       generifiedType = generifiedType.getComponentType();
                   }
                   if (expected.isGenericsPlaceHolder()) {
                       placeholders.put(expected.getGenericsTypes()[0].getName(), new GenericsType(generifiedType));
                   } else {
                       GenericsType[] expectedGenericsTypes = expected.getGenericsTypes();
                       GenericsType[] foundGenericsTypes = generifiedType.getGenericsTypes();

                       for (int i = 0; i < expectedGenericsTypes.length; i++) {
                           final GenericsType type = expectedGenericsTypes[i];
                           if (type.isPlaceholder()) {
                               String name = type.getName();
                               placeholders.put(name, foundGenericsTypes[i]);
                           }
                       }
                   }
               }
View Full Code Here

            if (resolvedPlaceholders!=null) {
                // merge maps
                Set<Map.Entry<String,GenericsType>> entries = currentPlaceHolders.entrySet();
                for (Map.Entry<String,GenericsType> entry : entries) {
                    GenericsType gt = entry.getValue();
                    if (!gt.isPlaceholder()) continue;
                    GenericsType referenced = resolvedPlaceholders.get(gt.getName());
                    if (referenced==null) continue;
                    entry.setValue(referenced);
                }
            }
            resolvedPlaceholders = currentPlaceHolders;
View Full Code Here

    private String toMethodGenericTypesString(MethodNode node) {
        GenericsType[] genericsTypes = node.getGenericsTypes();
        if (genericsTypes ==null) return "";
        StringBuilder sb = new StringBuilder("<");
        for (int i = 0; i < genericsTypes.length; i++) {
            final GenericsType genericsType = genericsTypes[i];
            sb.append(genericsType.toString());
            if (i<genericsTypes.length-1) {
                sb.append(",");
            }
        }
        sb.append("> ");
View Full Code Here

        ClassNode type;
        if (isStatic) {
            // Class<TraitClass>
            type = ClassHelper.CLASS_Type.getPlainNodeReference();
            type.setGenericsTypes(new GenericsType[]{
                    new GenericsType(rawType)
            });
        } else {
            // TraitClass
            type = rawType;
        }
View Full Code Here

    }

    private static GenericsType[] unsetGenTypes(int numFields) {
        GenericsType[] gtypes = new GenericsType[numFields];
        for (int i = 0; i < gtypes.length; i++) {
            gtypes[i] = new GenericsType(ClassHelper.make(UNSET.class));
        }
        return gtypes;
    }
View Full Code Here

    }

    private static GenericsType[] setGenTypes(int numFields) {
        GenericsType[] gtypes = new GenericsType[numFields];
        for (int i = 0; i < gtypes.length; i++) {
            gtypes[i] = new GenericsType(ClassHelper.make(SET.class));
        }
        return gtypes;
    }
View Full Code Here

        String fieldName = fields.get(fieldPos).getName();
        String setterName = getSetterName(prefix, fieldName);
        GenericsType[] gtypes = new GenericsType[fields.size()];
        List<Expression> argList = new ArrayList<Expression>();
        for (int i = 0; i < fields.size(); i++) {
            gtypes[i] = i == fieldPos ? new GenericsType(ClassHelper.make(SET.class)) : makePlaceholder(i);
            argList.add(i == fieldPos ? propX(varX("this"), constX(fieldName)) : varX(fields.get(i).getName()));
        }
        ClassNode returnType = makeClassSafeWithGenerics(builder, gtypes);
        FieldNode fNode = fields.get(fieldPos);
        Map<String,ClassNode> genericsSpec = createGenericsSpec(fNode.getDeclaringClass());
View Full Code Here

TOP

Related Classes of org.codehaus.groovy.ast.GenericsType

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.