Package org.apache.flex.compiler.definitions

Examples of org.apache.flex.compiler.definitions.IClassDefinition


    {
        thisClass = node.getDefinition();

        project = getWalker().getProject();

        IClassDefinition definition = node.getDefinition();

        IFunctionDefinition ctorDefinition = definition.getConstructor();

        // Static-only (Singleton) classes may not have a constructor
        if (ctorDefinition != null)
        {
            IFunctionNode ctorNode = (IFunctionNode) ctorDefinition.getNode();
            if (ctorNode != null)
            {
                // constructor
                emitMethod(ctorNode);
                write(ASEmitterTokens.SEMICOLON);
            }
            else
            {
                String qname = definition.getQualifiedName();
                if (qname != null && !qname.equals(""))
                {
                    write(qname);
                    write(ASEmitterTokens.SPACE);
                    writeToken(ASEmitterTokens.EQUAL);
View Full Code Here


    @Override
    public void emitClass(IClassNode node)
    {
        //ICompilerProject project = getWalker().getProject();

        IClassDefinition definition = node.getDefinition();
        final String className = definition.getBaseName();

        write("AS3.compilationUnit($exports, function($primaryDeclaration){");
        indentPush();
        writeNewline();

        // write constructor
        emitConstructor((IFunctionNode) definition.getConstructor().getNode());
        writeNewline();

        // base class
        IReference baseClassReference = definition.getBaseClassReference();
        boolean hasSuper = baseClassReference != null
                && !baseClassReference.getName().equals("Object");
        if (hasSuper)
        {
            String baseName = baseClassReference.getName();
            write("var Super = (" + baseName + "._ || " + baseName
                    + "._$get());");
            writeNewline();
            write("var super$ = Super.prototype;");
            writeNewline();
        }

        write("$primaryDeclaration(AS3.class_({");
        indentPush();
        writeNewline();

        // write out package
        write("package_: \"" + definition.getPackageName() + "\",");
        writeNewline();
        // write class
        write("class_: \"" + definition.getBaseName() + "\",");
        writeNewline();
        if (hasSuper)
        {
            write("extends_: Super,");
            writeNewline();
        }

        IReference[] references = definition
                .getImplementedInterfaceReferences();
        int len = references.length;

        // write implements
        write("implements_:");
View Full Code Here

    }

    private static IClassDefinition getSuperClassDefinition(
            IDefinitionNode node, ICompilerProject project)
    {
        IClassDefinition parent = (IClassDefinition) node.getDefinition()
                .getParent();
        IClassDefinition superClass = parent.resolveBaseClass(project);
        return superClass;
    }
View Full Code Here

    //--------------------------------------------------------------------------

    @Override
    public void emitClass(IClassNode node)
    {
        IClassDefinition definition = node.getDefinition();

        IFunctionDefinition ctorDefinition = definition.getConstructor();

        // Static-only (Singleton) classes may not have a constructor
        if (ctorDefinition != null)
        {
            IFunctionNode ctorNode = (IFunctionNode) ctorDefinition.getNode();
            if (ctorNode != null)
            {
                // constructor
                emitMethod(ctorNode);
                write(ASEmitterTokens.SEMICOLON);
            }
            else
            {
                String qname = definition.getQualifiedName();
                if (qname != null && !qname.equals(""))
                {
                    write(qname);
                    write(ASEmitterTokens.SPACE);
                    writeToken(ASEmitterTokens.EQUAL);
View Full Code Here

    }

    @Override
    public void emitField(IVariableNode node)
    {
        IClassDefinition definition = getClassDefinition(node);

        IDefinition def = null;
        IExpressionNode enode = node.getVariableTypeNode();//getAssignedValueNode();
        if (enode != null)
            def = enode.resolveType(getWalker().getProject());

        getDoc().emitFieldDoc(node, def);

        /* x.prototype.y = z */

        ModifiersSet modifierSet = node.getDefinition().getModifiers();
        String root = "";
        if (modifierSet != null && !modifierSet.hasModifier(ASModifier.STATIC))
        {
            root = JSEmitterTokens.PROTOTYPE.getToken();
            root += ASEmitterTokens.MEMBER_ACCESS.getToken();
        }
        write(definition.getQualifiedName()
                + ASEmitterTokens.MEMBER_ACCESS.getToken() + root
                + node.getName());

        IExpressionNode vnode = node.getAssignedValueNode();
        if (vnode != null)
View Full Code Here

    }

    private static IClassDefinition getSuperClassDefinition(
            IDefinitionNode node, ICompilerProject project)
    {
        IClassDefinition parent = (IClassDefinition) node.getDefinition()
                .getParent();
        IClassDefinition superClass = parent.resolveBaseClass(project);
        return superClass;
    }
View Full Code Here

    }

    protected boolean hasSuperClass(IDefinitionNode node)
    {
        ICompilerProject project = getWalker().getProject();
        IClassDefinition superClassDefinition = getSuperClassDefinition(node,
                project);
        // XXX (mschmalle) this is nulling for MXML super class, figure out why
        if (superClassDefinition == null)
            return false;
        String qname = superClassDefinition.getQualifiedName();
        return superClassDefinition != null
                && !qname.equals(IASLanguageConstants.Object);
    }
View Full Code Here

        IVariableDefinition definition = (IVariableDefinition) node
                .getDefinition();

        if (definition.isStatic())
        {
            IClassDefinition parent = (IClassDefinition) definition.getParent();
            write(parent.getBaseName());
            write(".");
            write(definition.getBaseName());
            write(" = ");
            emitFieldInitialValue(node);
            return;
View Full Code Here

        IFunctionDefinition definition = node.getDefinition();

        if (node.isConstructor())
        {
            initializingFieldsInConstructor = true;
            IClassDefinition type = (IClassDefinition) definition
                    .getAncestorOfType(IClassDefinition.class);
            // emit public fields init values
            List<IVariableDefinition> fields = TempTools.getFields(type, true);
            for (IVariableDefinition field : fields)
            {
View Full Code Here

    void initializeInheritenceLevel(IDefinition definition)
    {
        if (inheritenceLevel != -1)
            return;

        IClassDefinition cdefinition = null;
        if (definition instanceof IClassDefinition)
            cdefinition = (IClassDefinition) definition;
        else
            cdefinition = (IClassDefinition) definition
                    .getAncestorOfType(IClassDefinition.class);

        ICompilerProject project = getWalker().getProject();
        IClassDefinition[] ancestry = cdefinition.resolveAncestry(project);
        inheritenceLevel = ancestry.length - 1;
    }
View Full Code Here

TOP

Related Classes of org.apache.flex.compiler.definitions.IClassDefinition

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.