Package com.redhat.ceylon.compiler.typechecker.model

Examples of com.redhat.ceylon.compiler.typechecker.model.Class


            Value v = (Value) d;
            if (v.isVariable()) {
                modifiers.append("variable ");
            }
        } else if (d instanceof Class) {
            Class c = (Class) d;
            if (c.isAbstract()) {
                modifiers.append("abstract ");
            }
            if (c.isFinal() && !c.isAnonymous()) {
                modifiers.append("final ");
            }
        }
        return modifiers.toString().trim();
    }
View Full Code Here


                continue;
            }
            if (m instanceof Interface) {
                interfaces.add((Interface) m);
            } else if (m instanceof Class) {
                Class c = (Class) m;
                if( c.isAnnotation() ) {
                    annotationTypes.add(c);
                } else  if (Util.isThrowable(c)) {
                    exceptions.add(c);
                } else {
                    classes.add(c);
View Full Code Here

                    if (Util.isEnumerated((ClassOrInterface) decl)) {
                        icons.add("icon-decoration-enumerated");
                    }
                }
                if (decl instanceof Class) {
                    Class klass = (Class) decl;
                    if (klass.isAnonymous()) {
                        icons.add("icon-object");
                    } else {
                        icons.add("icon-class");
                    }
                    if (klass.isAbstract()) {
                        icons.add("icon-decoration-abstract");
                    }
                    if (klass.isFinal() && !klass.isAnonymous() && !klass.isAnnotation()) {
                        icons.add("icon-decoration-final");
                    }
                    if (Util.isEnumerated(klass)) {
                        icons.add("icon-decoration-enumerated");
                    }
View Full Code Here

    }
   
    public static boolean isJavaArray(TypeDeclaration decl) {
        if(decl instanceof Class == false)
            return false;
        Class c = (Class) decl;
        String name = c.getQualifiedNameString();
        return name.equals("java.lang::ObjectArray")
                || name.equals("java.lang::ByteArray")
                || name.equals("java.lang::ShortArray")
                || name.equals("java.lang::IntArray")
                || name.equals("java.lang::LongArray")
View Full Code Here

    }

    public static boolean isJavaObjectArray(TypeDeclaration decl) {
        if(decl instanceof Class == false)
            return false;
        Class c = (Class) decl;
        String name = c.getQualifiedNameString();
        return name.equals("java.lang::ObjectArray");
    }
View Full Code Here

        if (decl instanceof MethodOrValue
                && ((MethodOrValue)decl).isParameter()
                && decl.getContainer() instanceof Class) {
            // Parameters in a refined class are not considered refinements themselves
            // We have in find the refined attribute
            Class c = (Class)decl.getContainer();
            boolean isAlias = c.isAlias();
            boolean isActual = c.isActual();
            // aliases and actual classes actually do refine their extended type parameters so the same rules apply wrt
            // boxing and stuff
            if (isAlias || isActual) {
                int index = c.getParameterList().getParameters().indexOf(findParamForDecl(((TypedDeclaration)decl)));
                // ATM we only consider aliases if we're looking at aliases, and same for actual, not mixing the two.
                // Note(Stef): not entirely sure about that one, what about aliases of actual classes?
                while ((isAlias && c.isAlias())
                        || (isActual && c.isActual())) {
                    c = c.getExtendedTypeDeclaration();
                }
                // be safe
                if(c.getParameterList() == null
                        || c.getParameterList().getParameters() == null
                        || c.getParameterList().getParameters().size() <= index)
                    return null;
                decl = c.getParameterList().getParameters().get(index).getModel();
            }
            if (decl.isShared()) {
                Declaration refinedDecl = c.getRefinedMember(decl.getName(), getSignature(decl), false);//?? ellipsis=false??
                if(refinedDecl != null && !Decl.equal(refinedDecl, decl)) {
                    return getTopmostRefinedDeclaration(refinedDecl, methodOverrides);
                }
            }
            return decl;
View Full Code Here

                    } else if(isCeylon && classMirror.getAnnotation(CEYLON_OBJECT_ANNOTATION) != null) {
                        // objects don't need overloading stuff
                        decl = makeLazyClass(classMirror, null, null);
                        setDeclarationVisibility(decl, classMirror, classMirror, isCeylon);
                    } else if(getJavaVisibility(classMirror) != JavaVisibility.PRIVATE){
                        Class klass = (Class)makeOverloadedConstructor(constructors, classMirror, decls, isCeylon);
                        decl = klass;
                        LazyClass subdecl = makeLazyClass(classMirror, klass, null);
                        // no visibility for subdecl (private)
                        subdecl.setOverloaded(true);
                        klass.getOverloads().add(subdecl);
                        decls.add(subdecl);
                    } else {
                        // private class does not need a constructor
                        decl = makeLazyClass(classMirror, null, null);
                    }
View Full Code Here

                effectivelySealed = false;
                break;
            }
        }
        if (effectivelySealed && decl instanceof Class) {
            Class type = (Class)decl;
            type.setSealed(effectivelySealed);
            if (type.getOverloads() != null) {
                for (Declaration oload : type.getOverloads()) {
                    ((Class)oload).setSealed(effectivelySealed);
                }
            }
        }
    }
View Full Code Here

    private Declaration makeOverloadedConstructor(List<MethodMirror> constructors, ClassMirror classMirror, List<Declaration> decls, boolean isCeylon) {
        // If the class has multiple constructors we make a copy of the class
        // for each one (each with it's own single constructor) and make them
        // a subclass of the original
        Class supercls = makeLazyClass(classMirror, null, null);
        // the abstraction class gets the class modifiers
        setDeclarationVisibility(supercls, classMirror, classMirror, isCeylon);
        supercls.setAbstraction(true);
        List<Declaration> overloads = new ArrayList<Declaration>(constructors.size());
        // all filtering is done in getClassConstructors
        for (MethodMirror constructor : constructors) {
            LazyClass subdecl = makeLazyClass(classMirror, supercls, constructor);
            // the subclasses class get the constructor modifiers
            setDeclarationVisibility(subdecl, constructor, classMirror, isCeylon);
            subdecl.setOverloaded(true);
            overloads.add(subdecl);
            decls.add(subdecl);
        }
        supercls.setOverloads(overloads);
        return supercls;
    }
View Full Code Here

            value.setEnumValue(true);
       
        ProducedType type = obtainType(fieldMirror.getType(), fieldMirror, klass, Decl.getModuleContainer(klass), VarianceLocation.INVARIANT,
                "field '"+value.getName()+"'", klass);
        if (value.isEnumValue()) {
            Class enumValueType = new Class();
            enumValueType.setAnonymous(true);
            enumValueType.setExtendedType(type);
            enumValueType.setContainer(value.getContainer());
            enumValueType.setScope(value.getContainer());
            enumValueType.setDeprecated(value.isDeprecated());
            enumValueType.setName(value.getName());
            enumValueType.setFinal(true);
            enumValueType.setUnit(value.getUnit());
            enumValueType.setStaticallyImportable(value.isStaticallyImportable());
            value.setType(enumValueType.getType());
            value.setUncheckedNullType(false);
        } else {
            value.setType(type);
            value.setUncheckedNullType((!isCeylon && !fieldMirror.getType().isPrimitive()) || isUncheckedNull(fieldMirror));
        }
View Full Code Here

TOP

Related Classes of com.redhat.ceylon.compiler.typechecker.model.Class

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.