de.dhbwstuttgart.typeinference

## Class FunN

- java.lang.Object
- - de.dhbwstuttgart.syntaxtree.SyntaxTreeNode
  - - de.dhbwstuttgart.syntaxtree.type.Type
    - - de.dhbwstuttgart.syntaxtree.type.ObjectType
      - - de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric
        - - de.dhbwstuttgart.typeinference.FunN

- All Implemented Interfaces:
    IItemWithOffset, IMatchable

      public class FunN
      extends RefType

  Author:
    A10023 - Andreas Stadelmeier Bemerkung: FunN ist ein RefType. Der RefType ist nicht mit einem FunNInterface verbunden.
  See Also:
    `"Complete Typeinference in Java 8" von Martin PlÃ¼micke "interface FunN { R apply(T1 arg1, T2 arg2, ... , TN argN); }"`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private Type` | `R`
    `private Menge<Type>` | `T`

    - ### Fields inherited from class de.dhbwstuttgart.syntaxtree.type.Type

      `name, used`

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

      `parent`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FunN(int parameterCount)` Erstellt eine FunN: FunN R und T1 - TparameterCount werden mit TypePlaceholdern besetzt.
    `FunN(Type R, Menge<Type> T)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `private void` | `calculateNewParalist()` Muss nach jeder Ãnderung von T oder R aufgerufen werden.
    `int` | `getTypeLineNumber()`
    `protected void` | `setR(Type R)`
    `protected void` | `setT(Menge<Type> T)`

    - ### Methods inherited from class de.dhbwstuttgart.syntaxtree.type.RefType

      `add_Parameter, applyResultSet, checkTYPE, clone, equals, Equiv2Equal, findGenericType, GenericTypeVar2TypePlaceholder, get_Name, get_ParaList, getChildren, getInvolvedTypePlaceholder, getMatchType, getName, getParaList, getParaN, getPrimitiveFlag, getSimpleName, getSuperWildcardTypes, getTypeName, getUnresolvedTPH, GTV2TPH, hashCode, is_Equiv, IsArray, isTV, parserPostProcessing, printJavaCode, set_ParaList, setArray, setName, setName, setPrimitiveFlag, toString, TYPE, Type2Key, Type2String`

    - ### Methods inherited from class de.dhbwstuttgart.syntaxtree.type.Type

      `get_UsedId, getOffset, getVariableLength, involves, set_UsedId, setOffset`

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

      `addTypeInsertPoints, getDescription, getGTVDeclarationContext, getMatchingParentNode, getParent, getParentClass, seesType`

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

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### R

          private Type R

    - #### T

          private Menge<Type> T

  - ### Constructor Detail

    - #### FunN

          public FunN(Type R,
                      Menge<Type> T)

      Parameters:
        `R` -
        `T` -

    - #### FunN

          public FunN(int parameterCount)

      Erstellt eine FunN: FunN R und T1 - TparameterCount werden mit TypePlaceholdern besetzt.
      Parameters:
        `parameterCount` -

  - ### Method Detail

    - #### calculateNewParalist

          private void calculateNewParalist()

      Muss nach jeder Ãnderung von T oder R aufgerufen werden. Dabei werden bestimmte, von RefType geerbte, Parameter angepasst. Dies ist wichtig fÃ¼r den Typinferenzalgorithmus.

    - #### setT

          protected void setT(Menge<Type> T)

    - #### setR

          protected void setR(Type R)

    - #### getTypeLineNumber

          public int getTypeLineNumber()