// Automatically generated code.  Edit at your own risk!
// Generated by bali2jak v2002.09.03.



public class UmodSmDecl extends SmDeclaration {

    final public static int ARG_LENGTH = 4 ;
    final public static int TOK_LENGTH = 1 ;

    public ImplementsClause getImplementsClause () {
        
        AstNode node = arg[2].arg [0] ;
        return (node != null) ? (ImplementsClause) node : null ;
    }

    public QName getQName () {
        
        return (QName) arg [0] ;
    }

    public AstToken getSTATE_MACHINE () {
        
        return (AstToken) tok [0] ;
    }

    public SmClassBody getSmClassBody () {
        
        return (SmClassBody) arg [3] ;
    }

    public SmExtendsClause getSmExtendsClause () {
        
        AstNode node = arg[1].arg [0] ;
        return (node != null) ? (SmExtendsClause) node : null ;
    }

    public boolean[] printorder () {
        
        return new boolean[] {true, false, false, false, false} ;
    }

    public UmodSmDecl setParms
    (AstToken tok0, QName arg0, AstOptNode arg1, AstOptNode arg2, SmClassBody arg3)
    {
        
        arg = new AstNode [ARG_LENGTH] ;
        tok = new AstTokenInterface [TOK_LENGTH] ;
        
        tok [0] = tok0 ;            /* STATE_MACHINE */
        arg [0] = arg0 ;            /* QName */
        arg [1] = arg1 ;            /* [ SmExtendsClause ] */
        arg [2] = arg2 ;            /* [ ImplementsClause ] */
        arg [3] = arg3 ;            /* SmClassBody */
        
        InitChildren () ;
        return (UmodSmDecl) this ;
    }

}
