de.dhbwstuttgart.typeinference

## Class FunNInterface

- java.lang.Object
- - de.dhbwstuttgart.syntaxtree.SyntaxTreeNode
  - - de.dhbwstuttgart.syntaxtree.GTVDeclarationContext
    - - de.dhbwstuttgart.syntaxtree.ClassOrInterface
      - - de.dhbwstuttgart.typeinference.FunNInterface

- All Implemented Interfaces:
    AClassOrInterface, IItemWithOffset, Generic, GenericTypeInsertable

      public class FunNInterface
      extends Class

  Stellt das Interface FunN dar.
  Author:
    janulrich

- - ### Field Summary

    - ### Fields inherited from class de.dhbwstuttgart.syntaxtree.Class

      `inferencelog, isFirstLocalVarDecl, modifiers, name, pkgName, superclassid, typinferenzLog`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FunNInterface(int N)` Ein FunN-Interface enthÃ¤lt nur eine Methode (namens apply).

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `private FunNMethod` | `getApplyFunction()` Erstellt die nach Definition des Typinferenzalgorithmus von Martin PlÃ¼micke, in jedem FunN-Interface enthaltene apply-Methode
    `TypeAssumptions` | `getPublicFieldAssumptions()` Ermittelt die Sichtbaren Felder und Methoden der Klasse.
    `private static Menge<java.lang.String>` | `makeParaList(int n)`

    - ### Methods inherited from class de.dhbwstuttgart.syntaxtree.Class

      `addField, does_Class_extend, equals, get_class_block, get_ParaHash, get_ParaList, get_Superclass_Name, getAccessFlags, getChildren, getContainedTypes, getDescription, getFields, getGenericParameter, getGenericVarDeclarationOffset, getGenericVarDeclarationString, getModifiers, getName, getOffset, getPackageName, getParent, getSimpleName, getSuperClass, getSuperInterfaces, getType, getTypeInformation, getUsedIdsToCheck, getVariableLength, isClass, parserPostProcessing, printJavaCode, set_class_block, set_ClassBody, set_ParaHash, set_UsedId, setContainedTypes, setGenericParameter, setModifiers, setName, setPackageName, setSuperInterfaces, toString, typeReconstruction, wandleRefTypeAttributes2GenericAttributes`

    - ### Methods inherited from class de.dhbwstuttgart.syntaxtree.GTVDeclarationContext

      `getGTVDeclarationContext`

    - ### Methods inherited from class de.dhbwstuttgart.syntaxtree.SyntaxTreeNode

      `addTypeInsertPoints, getMatchingParentNode, getParentClass, seesType`

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

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

- - ### Constructor Detail

    - #### FunNInterface

          public FunNInterface(int N)

      Ein FunN-Interface enthÃ¤lt nur eine Methode (namens apply). Ist also ein Funktionales Interface.
      Parameters:
        `N` - - Die Anzahl der Parameter der apply-Methode. Beispiel N = 1 ergibt `R apply(T1 par1);`

  - ### Method Detail

    - #### makeParaList

          private static Menge<java.lang.String> makeParaList(int n)

    - #### getPublicFieldAssumptions

          public TypeAssumptions getPublicFieldAssumptions()

      Description copied from class: `Class`
      Ermittelt die Sichtbaren Felder und Methoden der Klasse. (Momentan sind im Projekt alle Felder und Methoden "package private", da der Parser keine Access-Modifier einlesen kann.
      Overrides:
        `getPublicFieldAssumptions` in class `Class`
      Returns:
        Im Falle von einem FunN-Interface ist dies die apply-Methode

    - #### getApplyFunction

          private FunNMethod getApplyFunction()

      Erstellt die nach Definition des Typinferenzalgorithmus von Martin PlÃ¼micke, in jedem FunN-Interface enthaltene apply-Methode
      Returns: