jif.ast

## Class PrincipalNode_c

- java.lang.Object
- - polyglot.ast.Node_c
  - - polyglot.ast.Term_c
    - - polyglot.ast.Expr_c
      - - jif.ast.PrincipalNode_c

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, ActsForParamNode<Principal>, ParamNode, PrincipalNode, polyglot.ast.Expr, polyglot.ast.ExprOps, polyglot.ast.Node, polyglot.ast.NodeOps, polyglot.ast.Prefix, polyglot.ast.Receiver, polyglot.ast.Term, polyglot.ast.TermOps, polyglot.ast.Typed, polyglot.util.Copy<polyglot.ast.Node>
  Direct Known Subclasses:
    AmbJunctivePrincipalNode_c, AmbPrincipalNode_c, CanonicalPrincipalNode_c

      public abstract class PrincipalNode_c
      extends polyglot.ast.Expr_c
      implements PrincipalNode

  An implementation of the `PrincipalNode` interface.
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface polyglot.util.Copy

      `polyglot.util.Copy.Util`

    - ### Nested classes/interfaces inherited from interface polyglot.ast.Term

      `polyglot.ast.Term.Instance`

  - ### Field Summary

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

      `type`

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

      `exceptions, reachable`

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

      `del, error, ext, position`

    - ### Fields inherited from interface polyglot.ast.Term

      `ENTRY, EXIT`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PrincipalNode_c(polyglot.util.Position pos)` Deprecated.
    `PrincipalNode_c(polyglot.util.Position pos, polyglot.ast.Ext ext)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `isDisambiguated()`
    `Principal` | `parameter()`
    `PrincipalNode` | `parameter(Principal principal)`
    `Principal` | `principal()`
    `PrincipalNode` | `principal(Principal principal)`
    `java.util.List<polyglot.types.Type>` | `throwTypes(polyglot.types.TypeSystem ts)`
    `java.lang.String` | `toString()`
    `polyglot.ast.Node` | `typeCheck(polyglot.visit.TypeChecker tc)` Type check the expression.

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

      `booleanValue, buildTypes, byteValue, charValue, constantValue, constantValue, constantValueSet, constantValueSet, doubleValue, dump, extRewrite, floatValue, intValue, isConstant, isConstant, isTypeChecked, lastLang, longValue, precedence, printSubExpr, printSubExpr, shortValue, stringValue, type, type, type`

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

      `acceptCFG, exceptionCheck, exceptions, exceptions, exceptions, firstChild, listChild, reachable, reachable, reachable`

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

      `addDecls, buildTypesEnter, checkConstants, childExpectedType, copy, copy, copy, copyIfNeeded, del, del, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, dump, enterChildScope, enterScope, error, error, error, exceptionCheckEnter, ext, ext, ext, ext, extRewriteEnter, extRewriteOverride, lang, position, position, position, prettyPrint, prettyPrint, prettyPrint, prettyPrint, prettyPrint, print, printBlock, printSubStmt, translate, typeCheckEnter, typeCheckOverride, visit, visitChild, visitChildren, visitEdge, visitList`

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

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

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

      `constantValue, constantValueSet, isConstant, precedence, printSubExpr, printSubExpr, type`

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

      `del, del, dump, error, error, ext, ext, ext, ext, isTypeChecked, position, position, visit, visitEdge`

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

      `addDecls, buildTypes, buildTypesEnter, checkConstants, childExpectedType, copy, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, extRewrite, extRewriteEnter, extRewriteOverride, lang, prettyPrint, prettyPrint, prettyPrint, prettyPrint, prettyPrint, translate, typeCheckEnter, typeCheckOverride, visitChild, visitChildren, visitList`

    - ### Methods inherited from interface polyglot.util.Copy

      `copy`

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

      `type`

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

      `exceptions, exceptions, reachable, reachable`

- - ### Constructor Detail

    - #### PrincipalNode_c

          @Deprecated
          public PrincipalNode_c(polyglot.util.Position pos)

      Deprecated.

    - #### PrincipalNode_c

          public PrincipalNode_c(polyglot.util.Position pos,
                                 polyglot.ast.Ext ext)

  - ### Method Detail

    - #### principal

          public Principal principal()

      Specified by:
        `principal` in interface `PrincipalNode`

    - #### principal

          public PrincipalNode principal(Principal principal)

      Specified by:
        `principal` in interface `PrincipalNode`

    - #### parameter

          public Principal parameter()

      Specified by:
        `parameter` in interface `ActsForParamNode<Principal>`
      Specified by:
        `parameter` in interface `ParamNode`

    - #### parameter

          public PrincipalNode parameter(Principal principal)

      Specified by:
        `parameter` in interface `ActsForParamNode<Principal>`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `polyglot.ast.Node_c`

    - #### isDisambiguated

          public boolean isDisambiguated()

      Specified by:
        `isDisambiguated` in interface `polyglot.ast.Node`
      Overrides:
        `isDisambiguated` in class `polyglot.ast.Node_c`

    - #### throwTypes

          public java.util.List<polyglot.types.Type> throwTypes(polyglot.types.TypeSystem ts)

      Specified by:
        `throwTypes` in interface `polyglot.ast.NodeOps`
      Overrides:
        `throwTypes` in class `polyglot.ast.Node_c`

    - #### typeCheck

          public polyglot.ast.Node typeCheck(polyglot.visit.TypeChecker tc)
                                      throws polyglot.types.SemanticException

      Type check the expression.
      Specified by:
        `typeCheck` in interface `polyglot.ast.NodeOps`
      Overrides:
        `typeCheck` in class `polyglot.ast.Node_c`
      Throws:
        `polyglot.types.SemanticException`