jif

## Class ExtensionInfo

- java.lang.Object
- - polyglot.frontend.AbstractExtensionInfo
  - - polyglot.frontend.ParserlessJLExtensionInfo
    - - polyglot.frontend.JLExtensionInfo
      - - jif.ExtensionInfo

- All Implemented Interfaces:
    polyglot.frontend.ExtensionInfo

      public class ExtensionInfo
      extends polyglot.frontend.JLExtensionInfo

  The configuration information of the Jif extension. Compiling passes and corresponding visitors:
  - ... clean super barrier, inherited from the jl extension
  - rewrite argument labels, `RewriteArgsVisitor`
  - add dummy fields, `AddDummyFieldsVisitor`
  - clean signatures, inherited from the jl extension
  - resolve field labels, `FieldLabelResolver`
  - ... check exceptions, inherited from the jl extension
  - (barrier) check labels, `LabelChecker`
  - serialization
  - translation, `JifTranslator`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ExtensionInfo.JifJobExt`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected OutputExtensionInfo` | `jlext`
    `static java.util.Set<java.lang.String>` | `topics`

    - ### Fields inherited from class polyglot.frontend.AbstractExtensionInfo

      `classFileLoader, compiler, default_locations, extFM, nf, scheduler, stats, target_factory, ts`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ExtensionInfo()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `compilerName()`
    `protected void` | `configureFileManager()`
    `polyglot.frontend.FileSource` | `createFileSource(javax.tools.FileObject f, polyglot.frontend.Source.Kind kind)`
    `LabelChecker` | `createLabelChecker(polyglot.frontend.Job job, boolean warningsEnabled, boolean solvePerClassBody, boolean solvePerMethod, boolean doLabelSubst)`
    `protected polyglot.ast.NodeFactory` | `createNodeFactory()`
    `protected polyglot.main.Options` | `createOptions()`
    `protected polyglot.frontend.Scheduler` | `createScheduler()`
    `protected polyglot.types.TypeSystem` | `createTypeSystem()`
    `java.lang.String` | `defaultFileExtension()`
    `polyglot.frontend.goals.Goal` | `getCompileGoal(polyglot.frontend.Job job)`
    `JifOptions` | `getJifOptions()`
    `void` | `initCompiler(polyglot.frontend.Compiler compiler)`
    `protected void` | `initTypeSystem()`
    `protected polyglot.types.TypeSystem` | `jlTypeSystem()`
    `polyglot.frontend.JobExt` | `jobExt()`
    `java.util.Set<java.lang.String>` | `keywords()`
    `polyglot.frontend.Parser` | `parser(java.io.Reader reader, polyglot.frontend.Source source, polyglot.util.ErrorQueue eq)`
    `polyglot.main.Version` | `version()`

    - ### Methods inherited from class polyglot.frontend.ParserlessJLExtensionInfo

      `getValidationGoal, makeLoadedClassResolver`

    - ### Methods inherited from class polyglot.frontend.AbstractExtensionInfo

      `classFileLoader, cleanup, compiler, configureFileManagerForPostCompiler, createClassFile, createFileManager, createFileSource, defaultFileExtensions, defaultLocations, extFileManager, fileExtensions, getOptions, getStats, getToExt, nodeFactory, outputExtensionInfo, scheduler, sourceLoader, targetFactory, toString, typeSystem`

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

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

- - ### Field Detail

    - #### jlext

          protected OutputExtensionInfo jlext

    - #### topics

          public static java.util.Set<java.lang.String> topics

  - ### Constructor Detail

    - #### ExtensionInfo

          public ExtensionInfo()

  - ### Method Detail

    - #### defaultFileExtension

          public java.lang.String defaultFileExtension()

      Specified by:
        `defaultFileExtension` in interface `polyglot.frontend.ExtensionInfo`
      Overrides:
        `defaultFileExtension` in class `polyglot.frontend.ParserlessJLExtensionInfo`

    - #### compilerName

          public java.lang.String compilerName()

      Specified by:
        `compilerName` in interface `polyglot.frontend.ExtensionInfo`
      Overrides:
        `compilerName` in class `polyglot.frontend.ParserlessJLExtensionInfo`

    - #### createOptions

          protected polyglot.main.Options createOptions()

      Overrides:
        `createOptions` in class `polyglot.frontend.AbstractExtensionInfo`

    - #### getJifOptions

          public JifOptions getJifOptions()

    - #### jlTypeSystem

          protected polyglot.types.TypeSystem jlTypeSystem()

    - #### createTypeSystem

          protected polyglot.types.TypeSystem createTypeSystem()

      Overrides:
        `createTypeSystem` in class `polyglot.frontend.ParserlessJLExtensionInfo`

    - #### initCompiler

          public void initCompiler(polyglot.frontend.Compiler compiler)

      Specified by:
        `initCompiler` in interface `polyglot.frontend.ExtensionInfo`
      Overrides:
        `initCompiler` in class `polyglot.frontend.AbstractExtensionInfo`

    - #### initTypeSystem

          protected void initTypeSystem()

      Overrides:
        `initTypeSystem` in class `polyglot.frontend.ParserlessJLExtensionInfo`

    - #### configureFileManager

          protected void configureFileManager()
                                       throws java.io.IOException

      Overrides:
        `configureFileManager` in class `polyglot.frontend.AbstractExtensionInfo`
      Throws:
        `java.io.IOException`

    - #### createNodeFactory

          protected polyglot.ast.NodeFactory createNodeFactory()

      Overrides:
        `createNodeFactory` in class `polyglot.frontend.ParserlessJLExtensionInfo`

    - #### version

          public polyglot.main.Version version()

      Specified by:
        `version` in interface `polyglot.frontend.ExtensionInfo`
      Overrides:
        `version` in class `polyglot.frontend.ParserlessJLExtensionInfo`

    - #### parser

          public polyglot.frontend.Parser parser(java.io.Reader reader,
                                                 polyglot.frontend.Source source,
                                                 polyglot.util.ErrorQueue eq)

      Specified by:
        `parser` in interface `polyglot.frontend.ExtensionInfo`
      Overrides:
        `parser` in class `polyglot.frontend.JLExtensionInfo`

    - #### keywords

          public java.util.Set<java.lang.String> keywords()

      Specified by:
        `keywords` in interface `polyglot.frontend.ExtensionInfo`
      Overrides:
        `keywords` in class `polyglot.frontend.JLExtensionInfo`

    - #### jobExt

          public polyglot.frontend.JobExt jobExt()

      Specified by:
        `jobExt` in interface `polyglot.frontend.ExtensionInfo`
      Overrides:
        `jobExt` in class `polyglot.frontend.ParserlessJLExtensionInfo`

    - #### createScheduler

          protected polyglot.frontend.Scheduler createScheduler()

      Overrides:
        `createScheduler` in class `polyglot.frontend.ParserlessJLExtensionInfo`

    - #### createLabelChecker

          public LabelChecker createLabelChecker(polyglot.frontend.Job job,
                                                 boolean warningsEnabled,
                                                 boolean solvePerClassBody,
                                                 boolean solvePerMethod,
                                                 boolean doLabelSubst)

    - #### getCompileGoal

          public polyglot.frontend.goals.Goal getCompileGoal(polyglot.frontend.Job job)

      Specified by:
        `getCompileGoal` in interface `polyglot.frontend.ExtensionInfo`
      Overrides:
        `getCompileGoal` in class `polyglot.frontend.ParserlessJLExtensionInfo`

    - #### createFileSource

          public polyglot.frontend.FileSource createFileSource(javax.tools.FileObject f,
                                                               polyglot.frontend.Source.Kind kind)
                                                        throws java.io.IOException

      Specified by:
        `createFileSource` in interface `polyglot.frontend.ExtensionInfo`
      Overrides:
        `createFileSource` in class `polyglot.frontend.AbstractExtensionInfo`
      Throws:
        `java.io.IOException`