jif.ast

## Class JifExt_c

- java.lang.Object
- - polyglot.ast.Ext_c
  - - jif.ast.JifExt_c

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, JifExt, polyglot.ast.Ext, polyglot.ast.NodeOps, polyglot.util.Copy<polyglot.ast.Ext>
  Direct Known Subclasses:
    JifClassBodyExt, JifClassDeclExt, JifExprExt, JifFieldDeclExt_c, JifFormalExt, JifInitializerExt, JifLocalClassDeclExt, JifProcedureDeclExt_c, JifSourceFileExt, JifStmtExt_c

      public class JifExt_c
      extends polyglot.ast.Ext_c
      implements JifExt

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

- - ### Nested Class Summary

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

      `polyglot.util.Copy.Util`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ToJavaExt` | `toJava`
    `protected PathMap` | `X`

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

      `ext, node, pred`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JifExt_c(ToJavaExt toJava)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `checkAndRemoveThrowType(java.util.List<polyglot.types.Type> throwTypes, polyglot.types.Type excType)` Check that the type excType is indeed in the list of types thrown, throwTypes, and remove excType from that list.
    `static void` | `checkThrowTypes(java.util.List<polyglot.types.Type> throwTypes)` Check that the list of types thrown, throwTypes, does not contain any checked exceptions, i.e., all throw types have been correctly label checked.
    `JifExt` | `copy()`
    `void` | `dump(polyglot.util.CodeWriter w)`
    `static PathMap` | `getPathMap(polyglot.ast.Node n)`
    `void` | `init(polyglot.ast.Node node)`
    `void` | `integerBoundsCalculated()` A method that is called to notify the extension that the numeric bounds have been calculated.
    `polyglot.ast.Node` | `labelCheck(LabelChecker lc)` Label check the node to which this extension is attached.
    `ToJavaExt` | `toJava()`
    `JifExt` | `toJava(ToJavaExt toJava)`
    `static polyglot.ast.Node` | `updatePathMap(polyglot.ast.Node n, PathMap X)`
    `PathMap` | `X()` Gets the path map of this extension.
    `JifExt` | `X(PathMap X)` Returns a copy of this object with the path map updated.

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

      `addDecls, buildTypes, buildTypesEnter, checkConstants, childExpectedType, copy, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, ext, ext, extRewrite, extRewriteEnter, extRewriteOverride, initPred, lang, node, pred, prettyPrint, prettyPrint, prettyPrint, prettyPrint, prettyPrint, print, printBlock, printSubStmt, superLang, throwTypes, toString, translate, typeCheck, typeCheckEnter, typeCheckOverride, visitChild, visitChildren, visitList`

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

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

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

      `ext, ext, initPred, node, pred`

    - ### 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, throwTypes, translate, typeCheck, typeCheckEnter, typeCheckOverride, visitChild, visitChildren, visitList`

- - ### Field Detail

    - #### X

          protected PathMap X

    - #### toJava

          protected ToJavaExt toJava

  - ### Constructor Detail

    - #### JifExt_c

          public JifExt_c(ToJavaExt toJava)

  - ### Method Detail

    - #### toJava

          public ToJavaExt toJava()

      Specified by:
        `toJava` in interface `JifExt`

    - #### init

          public void init(polyglot.ast.Node node)

      Specified by:
        `init` in interface `polyglot.ast.Ext`
      Overrides:
        `init` in class `polyglot.ast.Ext_c`

    - #### toJava

          public JifExt toJava(ToJavaExt toJava)

      Specified by:
        `toJava` in interface `JifExt`

    - #### copy

          public JifExt copy()

      Specified by:
        `copy` in interface `polyglot.util.Copy<polyglot.ast.Ext>`
      Overrides:
        `copy` in class `polyglot.ast.Ext_c`

    - #### X

          public PathMap X()

      Description copied from interface: `JifExt`
      Gets the path map of this extension.
      Specified by:
        `X` in interface `JifExt`

    - #### X

          public JifExt X(PathMap X)

      Description copied from interface: `JifExt`
      Returns a copy of this object with the path map updated.
      Specified by:
        `X` in interface `JifExt`

    - #### labelCheck

          public polyglot.ast.Node labelCheck(LabelChecker lc)
                                       throws polyglot.types.SemanticException

      Description copied from interface: `JifExt`
      Label check the node to which this extension is attached.
      Specified by:
        `labelCheck` in interface `JifExt`
      Throws:
        `polyglot.types.SemanticException`

    - #### getPathMap

          public static PathMap getPathMap(polyglot.ast.Node n)

    - #### updatePathMap

          public static polyglot.ast.Node updatePathMap(polyglot.ast.Node n,
                                                        PathMap X)

    - #### checkAndRemoveThrowType

          public static void checkAndRemoveThrowType(java.util.List<polyglot.types.Type> throwTypes,
                                                     polyglot.types.Type excType)

      Check that the type excType is indeed in the list of types thrown, throwTypes, and remove excType from that list.
      Parameters:
        `throwTypes` -
        `excType` -

    - #### checkThrowTypes

          public static void checkThrowTypes(java.util.List<polyglot.types.Type> throwTypes)

      Check that the list of types thrown, throwTypes, does not contain any checked exceptions, i.e., all throw types have been correctly label checked.
      Parameters:
        `throwTypes` -

    - #### integerBoundsCalculated

          public void integerBoundsCalculated()

      Description copied from interface: `JifExt`
      A method that is called to notify the extension that the numeric bounds have been calculated.
      Specified by:
        `integerBoundsCalculated` in interface `JifExt`

    - #### dump

          public void dump(polyglot.util.CodeWriter w)

      Specified by:
        `dump` in interface `polyglot.ast.Ext`
      Overrides:
        `dump` in class `polyglot.ast.Ext_c`