jif.ast

## Class JifNodeFactory_c

- java.lang.Object
- - polyglot.ast.AbstractNodeFactory_c
  - - polyglot.ast.NodeFactory_c
    - - jif.ast.JifNodeFactory_c

- All Implemented Interfaces:
    JifNodeFactory, polyglot.ast.NodeFactory

      public class JifNodeFactory_c
      extends polyglot.ast.NodeFactory_c
      implements JifNodeFactory

  An implementation of the `JifNodeFactory` interface.

- - ### Field Summary

    - ### Fields inherited from class polyglot.ast.NodeFactory_c

      `emptyDelFactory`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `JifNodeFactory_c()`
    `protected` | `JifNodeFactory_c(JifExtFactory extFact)`
    `protected` | `JifNodeFactory_c(JifExtFactory extFact, polyglot.ast.DelFactory delFact)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `AmbPrincipalNode` | `AmbConjunctivePrincipalNode(polyglot.util.Position pos, PrincipalNode left, PrincipalNode right)`
    `AmbPrincipalNode` | `AmbDisjunctivePrincipalNode(polyglot.util.Position pos, PrincipalNode left, PrincipalNode right)`
    `AmbDynamicLabelNode` | `AmbDynamicLabelNode(polyglot.util.Position pos, polyglot.ast.Expr expr)`
    `AmbNewArray` | `AmbNewArray(polyglot.util.Position pos, polyglot.ast.TypeNode baseType, java.lang.Object expr, java.util.List<polyglot.ast.Expr> dims, int addDims)`
    `AmbExprParam` | `AmbParam(polyglot.util.Position pos, polyglot.ast.Expr expr, ParamInstance expectedPI)`
    `AmbParam` | `AmbParam(polyglot.util.Position pos, polyglot.ast.Id name)`
    `AmbParam` | `AmbParam(polyglot.util.Position pos, polyglot.ast.Id name, ParamInstance pi)`
    `AmbParamTypeOrAccess` | `AmbParamTypeOrAccess(polyglot.util.Position pos, polyglot.ast.Receiver base, java.lang.Object expr)`
    `AmbPrincipalNode` | `AmbPrincipalNode(polyglot.util.Position pos, polyglot.ast.Expr expr)`
    `AmbPrincipalNode` | `AmbPrincipalNode(polyglot.util.Position pos, polyglot.ast.Id name)`
    `AmbProviderLabelNode` | `AmbProviderLabelNode(polyglot.util.Position pos, polyglot.ast.TypeNode typeNode)`
    `AmbThisLabelNode` | `AmbThisLabelNode(polyglot.util.Position pos)`
    `AmbVarLabelNode` | `AmbVarLabelNode(polyglot.util.Position pos, polyglot.ast.Id name)`
    `polyglot.ast.ArrayAccessAssign` | `ArrayAccessAssign(polyglot.util.Position pos, polyglot.ast.ArrayAccess left, polyglot.ast.Assign.Operator op, polyglot.ast.Expr right)`
    `AuthConstraintNode` | `AuthConstraintNode(polyglot.util.Position pos, java.util.List<PrincipalNode> principals)`
    `AutoEndorseConstraintNode` | `AutoEndorseConstraintNode(polyglot.util.Position pos, LabelNode endorseTo)`
    `polyglot.ast.Binary` | `Binary(polyglot.util.Position pos, polyglot.ast.Expr left, polyglot.ast.Binary.Operator op, polyglot.ast.Expr right)`
    `polyglot.ast.Call` | `Call(polyglot.util.Position pos, polyglot.ast.Receiver target, polyglot.ast.Id name, java.util.List<polyglot.ast.Expr> args)`
    `CallerConstraintNode` | `CallerConstraintNode(polyglot.util.Position pos, java.util.List<PrincipalNode> principals)`
    `CanonicalConstraintNode` | `CanonicalConstraintNode(polyglot.util.Position pos, Assertion constraint)`
    `CanonicalLabelNode` | `CanonicalLabelNode(polyglot.util.Position pos, Label label)`
    `CanonicalPrincipalNode` | `CanonicalPrincipalNode(polyglot.util.Position pos, Principal principal)`
    `polyglot.ast.CanonicalTypeNode` | `CanonicalTypeNode(polyglot.util.Position pos, polyglot.types.Type type)`
    `polyglot.ast.Catch` | `Catch(polyglot.util.Position pos, polyglot.ast.Formal formal, polyglot.ast.Block body)`
    `CheckedEndorseStmt` | `CheckedEndorseStmt(polyglot.util.Position pos, polyglot.ast.Expr e, LabelNode bound, LabelNode label, polyglot.ast.If body)`
    `polyglot.ast.ClassDecl` | `ClassDecl(polyglot.util.Position pos, polyglot.types.Flags flags, polyglot.ast.Id name, polyglot.ast.TypeNode superClass, java.util.List<polyglot.ast.TypeNode> interfaces, polyglot.ast.ClassBody body, polyglot.ast.Javadoc javadoc)`
    `polyglot.ast.TypeNode` | `ConstArrayTypeNode(polyglot.util.Position pos, polyglot.ast.TypeNode base)`
    `polyglot.ast.ConstructorDecl` | `ConstructorDecl(polyglot.util.Position pos, polyglot.types.Flags flags, polyglot.ast.Id name, java.util.List<polyglot.ast.Formal> formals, java.util.List<polyglot.ast.TypeNode> throwTypes, polyglot.ast.Block body, polyglot.ast.Javadoc javadoc)`
    `DeclassifyExpr` | `DeclassifyExpr(polyglot.util.Position pos, polyglot.ast.Expr expr, LabelNode label)`
    `DeclassifyExpr` | `DeclassifyExpr(polyglot.util.Position pos, polyglot.ast.Expr expr, LabelNode bound, LabelNode label)`
    `DeclassifyStmt` | `DeclassifyStmt(polyglot.util.Position pos, LabelNode bound, LabelNode label, polyglot.ast.Stmt body)`
    `DeclassifyStmt` | `DeclassifyStmt(polyglot.util.Position pos, LabelNode label, polyglot.ast.Stmt body)`
    `polyglot.ast.Disamb` | `disamb()`
    `EndorseExpr` | `EndorseExpr(polyglot.util.Position pos, polyglot.ast.Expr expr, LabelNode label)`
    `EndorseExpr` | `EndorseExpr(polyglot.util.Position pos, polyglot.ast.Expr expr, LabelNode bound, LabelNode label)`
    `EndorseStmt` | `EndorseStmt(polyglot.util.Position pos, LabelNode bound, LabelNode label, polyglot.ast.Stmt body)`
    `EndorseStmt` | `EndorseStmt(polyglot.util.Position pos, LabelNode label, polyglot.ast.Stmt body)`
    `polyglot.ast.Formal` | `Formal(polyglot.util.Position pos, polyglot.types.Flags flags, polyglot.ast.TypeNode type, polyglot.ast.Id name)`
    `InstTypeNode` | `InstTypeNode(polyglot.util.Position pos, polyglot.ast.TypeNode type, java.util.List<ParamNode> params)`
    `JifClassDecl` | `JifClassDecl(polyglot.util.Position pos, polyglot.types.Flags flags, polyglot.ast.Id name, java.util.List<ParamDecl> params, polyglot.ast.TypeNode superClass, java.util.List<polyglot.ast.TypeNode> interfaces, java.util.List<PrincipalNode> authority, java.util.List<ConstraintNode<Assertion>> constraints, polyglot.ast.ClassBody body, polyglot.ast.Javadoc javadoc)`
    `JifConstructorDecl` | `JifConstructorDecl(polyglot.util.Position pos, polyglot.types.Flags flags, polyglot.ast.Id name, LabelNode startLabel, LabelNode returnLabel, java.util.List<polyglot.ast.Formal> formals, java.util.List<polyglot.ast.TypeNode> throwTypes, java.util.List<ConstraintNode<Assertion>> constraints, polyglot.ast.Block body, polyglot.ast.Javadoc javadoc)`
    `protected JifExtFactory` | `jifExtFactory()`
    `JifMethodDecl` | `JifMethodDecl(polyglot.util.Position pos, polyglot.types.Flags flags, polyglot.ast.TypeNode returnType, polyglot.ast.Id name, LabelNode startLabel, java.util.List<polyglot.ast.Formal> formals, LabelNode endLabel, java.util.List<polyglot.ast.TypeNode> throwTypes, java.util.List<ConstraintNode<Assertion>> constraints, polyglot.ast.Block body, polyglot.ast.Javadoc javadoc)`
    `JoinLabelNode` | `JoinLabelNode(polyglot.util.Position pos, java.util.List<LabelComponentNode> components)`
    `LabelActsForLabelConstraintNode` | `LabelActsForLabelConstraintNode(polyglot.util.Position pos, LabelNode actor, LabelNode granter)`
    `LabelActsForPrincipalConstraintNode` | `LabelActsForPrincipalConstraintNode(polyglot.util.Position pos, LabelNode actor, PrincipalNode granter)`
    `LabeledTypeNode` | `LabeledTypeNode(polyglot.util.Position pos, polyglot.ast.TypeNode type, LabelNode label)`
    `LabelExpr` | `LabelExpr(polyglot.util.Position pos, Label l)`
    `LabelExpr` | `LabelExpr(polyglot.util.Position pos, LabelNode node)`
    `LabelLeAssertionNode` | `LabelLeAssertionNode(polyglot.util.Position pos, LabelNode lhs, LabelNode rhs, boolean isEquiv)`
    `polyglot.ast.LocalDecl` | `LocalDecl(polyglot.util.Position pos, polyglot.types.Flags flags, polyglot.ast.TypeNode type, polyglot.ast.Id name, polyglot.ast.Expr init)`
    `MeetLabelNode` | `MeetLabelNode(polyglot.util.Position pos, java.util.List<LabelComponentNode> components)`
    `polyglot.ast.MethodDecl` | `MethodDecl(polyglot.util.Position pos, polyglot.types.Flags flags, polyglot.ast.TypeNode returnType, polyglot.ast.Id name, java.util.List<polyglot.ast.Formal> formals, java.util.List<polyglot.ast.TypeNode> throwTypes, polyglot.ast.Block body, polyglot.ast.Javadoc javadoc)`
    `polyglot.ast.New` | `New(polyglot.util.Position pos, polyglot.ast.Expr outer, polyglot.ast.TypeNode objectType, java.util.List<polyglot.ast.Expr> args, polyglot.ast.ClassBody body)`
    `NewLabel` | `NewLabel(polyglot.util.Position pos, LabelNode label)`
    `ParamDecl` | `ParamDecl(polyglot.util.Position pos, ParamInstance.Kind kind, polyglot.ast.Id name)`
    `PolicyNode` | `PolicyNode(polyglot.util.Position pos, Policy policy)`
    `PrincipalActsForPrincipalConstraintNode` | `PrincipalActsForPrincipalConstraintNode(polyglot.util.Position pos, PrincipalNode actor, PrincipalNode granter)`
    `PrincipalActsForPrincipalConstraintNode` | `PrincipalActsForPrincipalConstraintNode(polyglot.util.Position pos, PrincipalNode actor, PrincipalNode granter, boolean isEquiv)`
    `PrincipalExpr` | `PrincipalExpr(polyglot.util.Position pos, PrincipalNode principal)`
    `Prologue` | `Prologue(polyglot.util.Position pos, java.util.List<polyglot.ast.Stmt> stmts)`
    `PolicyNode` | `ReaderPolicyNode(polyglot.util.Position pos, PrincipalNode owner, java.util.List<PrincipalNode> readers)`
    `PolicyNode` | `WriterPolicyNode(polyglot.util.Position pos, PrincipalNode owner, java.util.List<PrincipalNode> writers)`

    - ### Methods inherited from class polyglot.ast.NodeFactory_c

      `AmbAssign, AmbExpr, AmbPrefix, AmbQualifierNode, AmbReceiver, AmbTypeNode, ArrayAccess, ArrayInit, ArrayTypeNode, Assert, Assign, Block, BooleanLit, Branch, Case, Cast, CharLit, ClassBody, ClassDecl, ClassLit, composeExts, Conditional, ConstructorCall, ConstructorDecl, del, delFactory, Do, Empty, Eval, ext, extFactory, Field, FieldAssign, FieldDecl, FieldDecl, findExtFactInstance, FloatLit, For, Id, If, Import, initEnums, Initializer, Instanceof, IntLit, Labeled, lang, Local, LocalAssign, LocalClassDecl, MethodDecl, NewArray, NullLit, PackageNode, Return, SourceCollection, SourceFile, Special, StringLit, Switch, SwitchBlock, Synchronized, Throw, Try, Unary, While`

    - ### Methods inherited from class polyglot.ast.AbstractNodeFactory_c

      `AmbExpr, AmbPrefix, AmbPrefix, AmbPrefix, AmbQualifierNode, AmbQualifierNode, AmbQualifierNode, AmbReceiver, AmbReceiver, AmbReceiver, AmbTypeNode, AmbTypeNode, AmbTypeNode, ArrayInit, Assert, Block, Branch, Branch, Break, Break, Break, Call, Call, Call, Call, Call, Call, Call, ClassDecl, ConstructorCall, ConstructorDecl, Continue, Continue, Continue, Default, ExprFromQualifiedName, Field, Field, Field, FieldDecl, FieldDecl, FieldDecl, Formal, If, Javadoc, Labeled, Local, LocalDecl, LocalDecl, LocalDecl, MethodDecl, New, New, New, NewArray, NewArray, NewArray, PrefixFromQualifiedName, QualifierNodeFromQualifiedName, ReceiverFromQualifiedName, Return, SourceFile, SourceFile, Special, Super, Super, SuperCall, SuperCall, This, This, ThisCall, ThisCall, Try, TypeNodeFromQualifiedName, Unary`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface polyglot.ast.NodeFactory

      `AmbAssign, AmbExpr, AmbExpr, AmbPrefix, AmbPrefix, AmbPrefix, AmbPrefix, AmbQualifierNode, AmbQualifierNode, AmbQualifierNode, AmbQualifierNode, AmbReceiver, AmbReceiver, AmbReceiver, AmbReceiver, AmbTypeNode, AmbTypeNode, AmbTypeNode, AmbTypeNode, ArrayAccess, ArrayInit, ArrayInit, ArrayTypeNode, Assert, Assert, Assign, Block, Block, BooleanLit, Branch, Branch, Branch, Break, Break, Break, Call, Call, Call, Call, Call, Call, Call, Case, Cast, CharLit, ClassBody, ClassDecl, ClassDecl, ClassLit, Conditional, ConstructorCall, ConstructorCall, ConstructorDecl, ConstructorDecl, Continue, Continue, Continue, Default, Do, Empty, Eval, ExprFromQualifiedName, Field, Field, Field, Field, FieldAssign, FieldDecl, FieldDecl, FieldDecl, FieldDecl, FieldDecl, FloatLit, For, Formal, Id, If, If, Import, Initializer, Instanceof, IntLit, Javadoc, Labeled, Labeled, lang, Local, Local, LocalAssign, LocalClassDecl, LocalDecl, LocalDecl, LocalDecl, MethodDecl, MethodDecl, New, New, New, NewArray, NewArray, NewArray, NewArray, NullLit, PackageNode, PrefixFromQualifiedName, QualifierNodeFromQualifiedName, ReceiverFromQualifiedName, Return, Return, SourceCollection, SourceFile, SourceFile, SourceFile, Special, Special, StringLit, Super, Super, SuperCall, SuperCall, Switch, SwitchBlock, Synchronized, This, This, ThisCall, ThisCall, Throw, Try, Try, TypeNodeFromQualifiedName, Unary, Unary, While`

- - ### Constructor Detail

    - #### JifNodeFactory_c

          public JifNodeFactory_c()

    - #### JifNodeFactory_c

          protected JifNodeFactory_c(JifExtFactory extFact)

    - #### JifNodeFactory_c

          protected JifNodeFactory_c(JifExtFactory extFact,
                                     polyglot.ast.DelFactory delFact)

  - ### Method Detail

    - #### jifExtFactory

          protected JifExtFactory jifExtFactory()

    - #### disamb

          public polyglot.ast.Disamb disamb()

      Specified by:
        `disamb` in interface `polyglot.ast.NodeFactory`
      Overrides:
        `disamb` in class `polyglot.ast.AbstractNodeFactory_c`

    - #### CanonicalTypeNode

          public polyglot.ast.CanonicalTypeNode CanonicalTypeNode(polyglot.util.Position pos,
                                                                  polyglot.types.Type type)

      Specified by:
        `CanonicalTypeNode` in interface `polyglot.ast.NodeFactory`
      Overrides:
        `CanonicalTypeNode` in class `polyglot.ast.NodeFactory_c`

    - #### InstTypeNode

          public InstTypeNode InstTypeNode(polyglot.util.Position pos,
                                           polyglot.ast.TypeNode type,
                                           java.util.List<ParamNode> params)

      Specified by:
        `InstTypeNode` in interface `JifNodeFactory`

    - #### LabeledTypeNode

          public LabeledTypeNode LabeledTypeNode(polyglot.util.Position pos,
                                                 polyglot.ast.TypeNode type,
                                                 LabelNode label)

      Specified by:
        `LabeledTypeNode` in interface `JifNodeFactory`

    - #### AmbNewArray

          public AmbNewArray AmbNewArray(polyglot.util.Position pos,
                                         polyglot.ast.TypeNode baseType,
                                         java.lang.Object expr,
                                         java.util.List<polyglot.ast.Expr> dims,
                                         int addDims)

      Specified by:
        `AmbNewArray` in interface `JifNodeFactory`

    - #### AmbParamTypeOrAccess

          public AmbParamTypeOrAccess AmbParamTypeOrAccess(polyglot.util.Position pos,
                                                           polyglot.ast.Receiver base,
                                                           java.lang.Object expr)

      Specified by:
        `AmbParamTypeOrAccess` in interface `JifNodeFactory`

    - #### JoinLabelNode

          public JoinLabelNode JoinLabelNode(polyglot.util.Position pos,
                                             java.util.List<LabelComponentNode> components)

      Specified by:
        `JoinLabelNode` in interface `JifNodeFactory`

    - #### MeetLabelNode

          public MeetLabelNode MeetLabelNode(polyglot.util.Position pos,
                                             java.util.List<LabelComponentNode> components)

      Specified by:
        `MeetLabelNode` in interface `JifNodeFactory`

    - #### ReaderPolicyNode

          public PolicyNode ReaderPolicyNode(polyglot.util.Position pos,
                                             PrincipalNode owner,
                                             java.util.List<PrincipalNode> readers)

      Specified by:
        `ReaderPolicyNode` in interface `JifNodeFactory`

    - #### WriterPolicyNode

          public PolicyNode WriterPolicyNode(polyglot.util.Position pos,
                                             PrincipalNode owner,
                                             java.util.List<PrincipalNode> writers)

      Specified by:
        `WriterPolicyNode` in interface `JifNodeFactory`

    - #### PolicyNode

          public PolicyNode PolicyNode(polyglot.util.Position pos,
                                       Policy policy)

      Specified by:
        `PolicyNode` in interface `JifNodeFactory`

    - #### AmbDynamicLabelNode

          public AmbDynamicLabelNode AmbDynamicLabelNode(polyglot.util.Position pos,
                                                         polyglot.ast.Expr expr)

      Specified by:
        `AmbDynamicLabelNode` in interface `JifNodeFactory`

    - #### AmbVarLabelNode

          public AmbVarLabelNode AmbVarLabelNode(polyglot.util.Position pos,
                                                 polyglot.ast.Id name)

      Specified by:
        `AmbVarLabelNode` in interface `JifNodeFactory`

    - #### AmbThisLabelNode

          public AmbThisLabelNode AmbThisLabelNode(polyglot.util.Position pos)

      Specified by:
        `AmbThisLabelNode` in interface `JifNodeFactory`

    - #### AmbProviderLabelNode

          public AmbProviderLabelNode AmbProviderLabelNode(polyglot.util.Position pos,
                                                           polyglot.ast.TypeNode typeNode)

      Specified by:
        `AmbProviderLabelNode` in interface `JifNodeFactory`

    - #### CanonicalLabelNode

          public CanonicalLabelNode CanonicalLabelNode(polyglot.util.Position pos,
                                                       Label label)

      Specified by:
        `CanonicalLabelNode` in interface `JifNodeFactory`

    - #### AmbPrincipalNode

          public AmbPrincipalNode AmbPrincipalNode(polyglot.util.Position pos,
                                                   polyglot.ast.Expr expr)

      Specified by:
        `AmbPrincipalNode` in interface `JifNodeFactory`

    - #### AmbPrincipalNode

          public AmbPrincipalNode AmbPrincipalNode(polyglot.util.Position pos,
                                                   polyglot.ast.Id name)

      Specified by:
        `AmbPrincipalNode` in interface `JifNodeFactory`

    - #### AmbConjunctivePrincipalNode

          public AmbPrincipalNode AmbConjunctivePrincipalNode(polyglot.util.Position pos,
                                                              PrincipalNode left,
                                                              PrincipalNode right)

      Specified by:
        `AmbConjunctivePrincipalNode` in interface `JifNodeFactory`

    - #### AmbDisjunctivePrincipalNode

          public AmbPrincipalNode AmbDisjunctivePrincipalNode(polyglot.util.Position pos,
                                                              PrincipalNode left,
                                                              PrincipalNode right)

      Specified by:
        `AmbDisjunctivePrincipalNode` in interface `JifNodeFactory`

    - #### CanonicalPrincipalNode

          public CanonicalPrincipalNode CanonicalPrincipalNode(polyglot.util.Position pos,
                                                               Principal principal)

      Specified by:
        `CanonicalPrincipalNode` in interface `JifNodeFactory`

    - #### ArrayAccessAssign

          public polyglot.ast.ArrayAccessAssign ArrayAccessAssign(polyglot.util.Position pos,
                                                                  polyglot.ast.ArrayAccess left,
                                                                  polyglot.ast.Assign.Operator op,
                                                                  polyglot.ast.Expr right)

      Specified by:
        `ArrayAccessAssign` in interface `polyglot.ast.NodeFactory`
      Overrides:
        `ArrayAccessAssign` in class `polyglot.ast.NodeFactory_c`

    - #### ClassDecl

          public polyglot.ast.ClassDecl ClassDecl(polyglot.util.Position pos,
                                                  polyglot.types.Flags flags,
                                                  polyglot.ast.Id name,
                                                  polyglot.ast.TypeNode superClass,
                                                  java.util.List<polyglot.ast.TypeNode> interfaces,
                                                  polyglot.ast.ClassBody body,
                                                  polyglot.ast.Javadoc javadoc)

      Specified by:
        `ClassDecl` in interface `polyglot.ast.NodeFactory`
      Overrides:
        `ClassDecl` in class `polyglot.ast.NodeFactory_c`

    - #### LocalDecl

          public polyglot.ast.LocalDecl LocalDecl(polyglot.util.Position pos,
                                                  polyglot.types.Flags flags,
                                                  polyglot.ast.TypeNode type,
                                                  polyglot.ast.Id name,
                                                  polyglot.ast.Expr init)

      Specified by:
        `LocalDecl` in interface `polyglot.ast.NodeFactory`
      Overrides:
        `LocalDecl` in class `polyglot.ast.NodeFactory_c`

    - #### JifClassDecl

          public JifClassDecl JifClassDecl(polyglot.util.Position pos,
                                           polyglot.types.Flags flags,
                                           polyglot.ast.Id name,
                                           java.util.List<ParamDecl> params,
                                           polyglot.ast.TypeNode superClass,
                                           java.util.List<polyglot.ast.TypeNode> interfaces,
                                           java.util.List<PrincipalNode> authority,
                                           java.util.List<ConstraintNode<Assertion>> constraints,
                                           polyglot.ast.ClassBody body,
                                           polyglot.ast.Javadoc javadoc)

      Specified by:
        `JifClassDecl` in interface `JifNodeFactory`

    - #### MethodDecl

          public polyglot.ast.MethodDecl MethodDecl(polyglot.util.Position pos,
                                                    polyglot.types.Flags flags,
                                                    polyglot.ast.TypeNode returnType,
                                                    polyglot.ast.Id name,
                                                    java.util.List<polyglot.ast.Formal> formals,
                                                    java.util.List<polyglot.ast.TypeNode> throwTypes,
                                                    polyglot.ast.Block body,
                                                    polyglot.ast.Javadoc javadoc)

      Specified by:
        `MethodDecl` in interface `polyglot.ast.NodeFactory`
      Overrides:
        `MethodDecl` in class `polyglot.ast.NodeFactory_c`

    - #### JifMethodDecl

          public JifMethodDecl JifMethodDecl(polyglot.util.Position pos,
                                             polyglot.types.Flags flags,
                                             polyglot.ast.TypeNode returnType,
                                             polyglot.ast.Id name,
                                             LabelNode startLabel,
                                             java.util.List<polyglot.ast.Formal> formals,
                                             LabelNode endLabel,
                                             java.util.List<polyglot.ast.TypeNode> throwTypes,
                                             java.util.List<ConstraintNode<Assertion>> constraints,
                                             polyglot.ast.Block body,
                                             polyglot.ast.Javadoc javadoc)

      Specified by:
        `JifMethodDecl` in interface `JifNodeFactory`

    - #### ConstructorDecl

          public polyglot.ast.ConstructorDecl ConstructorDecl(polyglot.util.Position pos,
                                                              polyglot.types.Flags flags,
                                                              polyglot.ast.Id name,
                                                              java.util.List<polyglot.ast.Formal> formals,
                                                              java.util.List<polyglot.ast.TypeNode> throwTypes,
                                                              polyglot.ast.Block body,
                                                              polyglot.ast.Javadoc javadoc)

      Specified by:
        `ConstructorDecl` in interface `polyglot.ast.NodeFactory`
      Overrides:
        `ConstructorDecl` in class `polyglot.ast.NodeFactory_c`

    - #### JifConstructorDecl

          public JifConstructorDecl JifConstructorDecl(polyglot.util.Position pos,
                                                       polyglot.types.Flags flags,
                                                       polyglot.ast.Id name,
                                                       LabelNode startLabel,
                                                       LabelNode returnLabel,
                                                       java.util.List<polyglot.ast.Formal> formals,
                                                       java.util.List<polyglot.ast.TypeNode> throwTypes,
                                                       java.util.List<ConstraintNode<Assertion>> constraints,
                                                       polyglot.ast.Block body,
                                                       polyglot.ast.Javadoc javadoc)

      Specified by:
        `JifConstructorDecl` in interface `JifNodeFactory`

    - #### New

          public polyglot.ast.New New(polyglot.util.Position pos,
                                      polyglot.ast.Expr outer,
                                      polyglot.ast.TypeNode objectType,
                                      java.util.List<polyglot.ast.Expr> args,
                                      polyglot.ast.ClassBody body)

      Specified by:
        `New` in interface `polyglot.ast.NodeFactory`
      Overrides:
        `New` in class `polyglot.ast.NodeFactory_c`

    - #### AmbParam

          public AmbParam AmbParam(polyglot.util.Position pos,
                                   polyglot.ast.Id name)

      Specified by:
        `AmbParam` in interface `JifNodeFactory`

    - #### AmbParam

          public AmbParam AmbParam(polyglot.util.Position pos,
                                   polyglot.ast.Id name,
                                   ParamInstance pi)

      Specified by:
        `AmbParam` in interface `JifNodeFactory`

    - #### AmbParam

          public AmbExprParam AmbParam(polyglot.util.Position pos,
                                       polyglot.ast.Expr expr,
                                       ParamInstance expectedPI)

      Specified by:
        `AmbParam` in interface `JifNodeFactory`

    - #### ParamDecl

          public ParamDecl ParamDecl(polyglot.util.Position pos,
                                     ParamInstance.Kind kind,
                                     polyglot.ast.Id name)

      Specified by:
        `ParamDecl` in interface `JifNodeFactory`

    - #### CanonicalConstraintNode

          public CanonicalConstraintNode CanonicalConstraintNode(polyglot.util.Position pos,
                                                                 Assertion constraint)

      Specified by:
        `CanonicalConstraintNode` in interface `JifNodeFactory`

    - #### AuthConstraintNode

          public AuthConstraintNode AuthConstraintNode(polyglot.util.Position pos,
                                                       java.util.List<PrincipalNode> principals)

      Specified by:
        `AuthConstraintNode` in interface `JifNodeFactory`

    - #### AutoEndorseConstraintNode

          public AutoEndorseConstraintNode AutoEndorseConstraintNode(polyglot.util.Position pos,
                                                                     LabelNode endorseTo)

      Specified by:
        `AutoEndorseConstraintNode` in interface `JifNodeFactory`

    - #### CallerConstraintNode

          public CallerConstraintNode CallerConstraintNode(polyglot.util.Position pos,
                                                           java.util.List<PrincipalNode> principals)

      Specified by:
        `CallerConstraintNode` in interface `JifNodeFactory`

    - #### PrincipalActsForPrincipalConstraintNode

          public PrincipalActsForPrincipalConstraintNode PrincipalActsForPrincipalConstraintNode(polyglot.util.Position pos,
                                                                                                 PrincipalNode actor,
                                                                                                 PrincipalNode granter)

      Specified by:
        `PrincipalActsForPrincipalConstraintNode` in interface `JifNodeFactory`

    - #### PrincipalActsForPrincipalConstraintNode

          public PrincipalActsForPrincipalConstraintNode PrincipalActsForPrincipalConstraintNode(polyglot.util.Position pos,
                                                                                                 PrincipalNode actor,
                                                                                                 PrincipalNode granter,
                                                                                                 boolean isEquiv)

      Specified by:
        `PrincipalActsForPrincipalConstraintNode` in interface `JifNodeFactory`

    - #### LabelActsForPrincipalConstraintNode

          public LabelActsForPrincipalConstraintNode LabelActsForPrincipalConstraintNode(polyglot.util.Position pos,
                                                                                         LabelNode actor,
                                                                                         PrincipalNode granter)

      Specified by:
        `LabelActsForPrincipalConstraintNode` in interface `JifNodeFactory`

    - #### LabelActsForLabelConstraintNode

          public LabelActsForLabelConstraintNode LabelActsForLabelConstraintNode(polyglot.util.Position pos,
                                                                                 LabelNode actor,
                                                                                 LabelNode granter)

      Specified by:
        `LabelActsForLabelConstraintNode` in interface `JifNodeFactory`

    - #### LabelLeAssertionNode

          public LabelLeAssertionNode LabelLeAssertionNode(polyglot.util.Position pos,
                                                           LabelNode lhs,
                                                           LabelNode rhs,
                                                           boolean isEquiv)

      Specified by:
        `LabelLeAssertionNode` in interface `JifNodeFactory`

    - #### DeclassifyStmt

          public DeclassifyStmt DeclassifyStmt(polyglot.util.Position pos,
                                               LabelNode bound,
                                               LabelNode label,
                                               polyglot.ast.Stmt body)

      Specified by:
        `DeclassifyStmt` in interface `JifNodeFactory`

    - #### DeclassifyStmt

          public DeclassifyStmt DeclassifyStmt(polyglot.util.Position pos,
                                               LabelNode label,
                                               polyglot.ast.Stmt body)

      Specified by:
        `DeclassifyStmt` in interface `JifNodeFactory`

    - #### DeclassifyExpr

          public DeclassifyExpr DeclassifyExpr(polyglot.util.Position pos,
                                               polyglot.ast.Expr expr,
                                               LabelNode bound,
                                               LabelNode label)

      Specified by:
        `DeclassifyExpr` in interface `JifNodeFactory`

    - #### DeclassifyExpr

          public DeclassifyExpr DeclassifyExpr(polyglot.util.Position pos,
                                               polyglot.ast.Expr expr,
                                               LabelNode label)

      Specified by:
        `DeclassifyExpr` in interface `JifNodeFactory`

    - #### EndorseStmt

          public EndorseStmt EndorseStmt(polyglot.util.Position pos,
                                         LabelNode bound,
                                         LabelNode label,
                                         polyglot.ast.Stmt body)

      Specified by:
        `EndorseStmt` in interface `JifNodeFactory`

    - #### EndorseStmt

          public EndorseStmt EndorseStmt(polyglot.util.Position pos,
                                         LabelNode label,
                                         polyglot.ast.Stmt body)

      Specified by:
        `EndorseStmt` in interface `JifNodeFactory`

    - #### CheckedEndorseStmt

          public CheckedEndorseStmt CheckedEndorseStmt(polyglot.util.Position pos,
                                                       polyglot.ast.Expr e,
                                                       LabelNode bound,
                                                       LabelNode label,
                                                       polyglot.ast.If body)

      Specified by:
        `CheckedEndorseStmt` in interface `JifNodeFactory`

    - #### EndorseExpr

          public EndorseExpr EndorseExpr(polyglot.util.Position pos,
                                         polyglot.ast.Expr expr,
                                         LabelNode label)

      Specified by:
        `EndorseExpr` in interface `JifNodeFactory`

    - #### EndorseExpr

          public EndorseExpr EndorseExpr(polyglot.util.Position pos,
                                         polyglot.ast.Expr expr,
                                         LabelNode bound,
                                         LabelNode label)

      Specified by:
        `EndorseExpr` in interface `JifNodeFactory`

    - #### LabelExpr

          public LabelExpr LabelExpr(polyglot.util.Position pos,
                                     Label l)

      Specified by:
        `LabelExpr` in interface `JifNodeFactory`

    - #### LabelExpr

          public LabelExpr LabelExpr(polyglot.util.Position pos,
                                     LabelNode node)

    - #### NewLabel

          public NewLabel NewLabel(polyglot.util.Position pos,
                                   LabelNode label)

      Specified by:
        `NewLabel` in interface `JifNodeFactory`

    - #### PrincipalExpr

          public PrincipalExpr PrincipalExpr(polyglot.util.Position pos,
                                             PrincipalNode principal)

      Specified by:
        `PrincipalExpr` in interface `JifNodeFactory`

    - #### Call

          public polyglot.ast.Call Call(polyglot.util.Position pos,
                                        polyglot.ast.Receiver target,
                                        polyglot.ast.Id name,
                                        java.util.List<polyglot.ast.Expr> args)

      Specified by:
        `Call` in interface `polyglot.ast.NodeFactory`
      Overrides:
        `Call` in class `polyglot.ast.NodeFactory_c`

    - #### Catch

          public polyglot.ast.Catch Catch(polyglot.util.Position pos,
                                          polyglot.ast.Formal formal,
                                          polyglot.ast.Block body)

      Specified by:
        `Catch` in interface `polyglot.ast.NodeFactory`
      Overrides:
        `Catch` in class `polyglot.ast.NodeFactory_c`

    - #### Formal

          public polyglot.ast.Formal Formal(polyglot.util.Position pos,
                                            polyglot.types.Flags flags,
                                            polyglot.ast.TypeNode type,
                                            polyglot.ast.Id name)

      Specified by:
        `Formal` in interface `polyglot.ast.NodeFactory`
      Overrides:
        `Formal` in class `polyglot.ast.NodeFactory_c`

    - #### Binary

          public polyglot.ast.Binary Binary(polyglot.util.Position pos,
                                            polyglot.ast.Expr left,
                                            polyglot.ast.Binary.Operator op,
                                            polyglot.ast.Expr right)

      Specified by:
        `Binary` in interface `polyglot.ast.NodeFactory`
      Overrides:
        `Binary` in class `polyglot.ast.NodeFactory_c`

    - #### ConstArrayTypeNode

          public polyglot.ast.TypeNode ConstArrayTypeNode(polyglot.util.Position pos,
                                                          polyglot.ast.TypeNode base)

      Specified by:
        `ConstArrayTypeNode` in interface `JifNodeFactory`

    - #### Prologue

          public Prologue Prologue(polyglot.util.Position pos,
                                   java.util.List<polyglot.ast.Stmt> stmts)

      Specified by:
        `Prologue` in interface `JifNodeFactory`