jif.ast

## Interface JifNodeFactory

- All Superinterfaces:
    polyglot.ast.NodeFactory
  All Known Implementing Classes:
    JifNodeFactory_c

      public interface JifNodeFactory
      extends polyglot.ast.NodeFactory

  The node factory of the Jif extension.

- - ### Method Summary

    All Methods Instance Methods Abstract 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 base, 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)`
    `AuthConstraintNode` | `AuthConstraintNode(polyglot.util.Position pos, java.util.List<PrincipalNode> principals)`
    `AutoEndorseConstraintNode` | `AutoEndorseConstraintNode(polyglot.util.Position pos, LabelNode endorseTo)`
    `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)`
    `CheckedEndorseStmt` | `CheckedEndorseStmt(polyglot.util.Position pos, polyglot.ast.Expr e, LabelNode bound, LabelNode label, polyglot.ast.If body)`
    `polyglot.ast.TypeNode` | `ConstArrayTypeNode(polyglot.util.Position position, polyglot.ast.TypeNode node)`
    `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)`
    `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)`
    `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> arguments, java.util.List<polyglot.ast.TypeNode> exceptions, java.util.List<ConstraintNode<Assertion>> constraints, polyglot.ast.Block body, polyglot.ast.Javadoc javadoc)`
    `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> arguments, LabelNode endLabel, java.util.List<polyglot.ast.TypeNode> exceptions, 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)`
    `LabelLeAssertionNode` | `LabelLeAssertionNode(polyglot.util.Position pos, LabelNode actor, LabelNode granter, boolean isEquiv)`
    `MeetLabelNode` | `MeetLabelNode(polyglot.util.Position pos, java.util.List<LabelComponentNode> components)`
    `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 pol)`
    `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 interface polyglot.ast.NodeFactory

      `AmbAssign, AmbExpr, AmbExpr, AmbPrefix, AmbPrefix, AmbPrefix, AmbPrefix, AmbQualifierNode, AmbQualifierNode, AmbQualifierNode, AmbQualifierNode, AmbReceiver, AmbReceiver, AmbReceiver, AmbReceiver, AmbTypeNode, AmbTypeNode, AmbTypeNode, AmbTypeNode, ArrayAccess, ArrayAccessAssign, ArrayInit, ArrayInit, ArrayTypeNode, Assert, Assert, Assign, Binary, Block, Block, BooleanLit, Branch, Branch, Branch, Break, Break, Break, Call, Call, Call, Call, Call, Call, Call, Call, CanonicalTypeNode, Case, Cast, Catch, CharLit, ClassBody, ClassDecl, ClassDecl, ClassDecl, ClassLit, Conditional, ConstructorCall, ConstructorCall, ConstructorDecl, ConstructorDecl, ConstructorDecl, Continue, Continue, Continue, Default, disamb, Do, Empty, Eval, ExprFromQualifiedName, Field, Field, Field, Field, FieldAssign, FieldDecl, FieldDecl, FieldDecl, FieldDecl, FieldDecl, FloatLit, For, Formal, Formal, Id, If, If, Import, Initializer, Instanceof, IntLit, Javadoc, Labeled, Labeled, lang, Local, Local, LocalAssign, LocalClassDecl, LocalDecl, LocalDecl, LocalDecl, LocalDecl, MethodDecl, MethodDecl, MethodDecl, New, 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`

- - ### Method Detail

    - #### InstTypeNode

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

    - #### LabeledTypeNode

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

    - #### AmbNewArray

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

    - #### AmbParamTypeOrAccess

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

    - #### JoinLabelNode

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

    - #### MeetLabelNode

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

    - #### ReaderPolicyNode

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

    - #### WriterPolicyNode

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

    - #### PolicyNode

          PolicyNode PolicyNode(polyglot.util.Position pos,
                                Policy pol)

    - #### AmbDynamicLabelNode

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

    - #### AmbVarLabelNode

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

    - #### AmbThisLabelNode

          AmbThisLabelNode AmbThisLabelNode(polyglot.util.Position pos)

    - #### AmbProviderLabelNode

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

    - #### CanonicalLabelNode

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

    - #### AmbPrincipalNode

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

    - #### AmbPrincipalNode

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

    - #### AmbConjunctivePrincipalNode

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

    - #### AmbDisjunctivePrincipalNode

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

    - #### CanonicalPrincipalNode

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

    - #### JifClassDecl

          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)

    - #### JifMethodDecl

          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> arguments,
                                      LabelNode endLabel,
                                      java.util.List<polyglot.ast.TypeNode> exceptions,
                                      java.util.List<ConstraintNode<Assertion>> constraints,
                                      polyglot.ast.Block body,
                                      polyglot.ast.Javadoc javadoc)

    - #### JifConstructorDecl

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

    - #### AmbParam

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

    - #### AmbParam

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

    - #### AmbParam

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

    - #### ParamDecl

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

    - #### CanonicalConstraintNode

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

    - #### AuthConstraintNode

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

    - #### CallerConstraintNode

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

    - #### AutoEndorseConstraintNode

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

    - #### PrincipalActsForPrincipalConstraintNode

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

    - #### PrincipalActsForPrincipalConstraintNode

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

    - #### LabelActsForPrincipalConstraintNode

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

    - #### LabelActsForLabelConstraintNode

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

    - #### LabelLeAssertionNode

          LabelLeAssertionNode LabelLeAssertionNode(polyglot.util.Position pos,
                                                    LabelNode actor,
                                                    LabelNode granter,
                                                    boolean isEquiv)

    - #### LabelExpr

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

    - #### DeclassifyStmt

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

    - #### DeclassifyStmt

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

    - #### DeclassifyExpr

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

    - #### DeclassifyExpr

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

    - #### EndorseStmt

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

    - #### EndorseStmt

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

    - #### CheckedEndorseStmt

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

    - #### EndorseExpr

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

    - #### EndorseExpr

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

    - #### NewLabel

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

    - #### PrincipalExpr

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

    - #### ConstArrayTypeNode

          polyglot.ast.TypeNode ConstArrayTypeNode(polyglot.util.Position position,
                                                   polyglot.ast.TypeNode node)

    - #### Prologue

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