de.dhbwstuttgart.syntaxtree

## Class Method

- java.lang.Object
- - de.dhbwstuttgart.syntaxtree.SyntaxTreeNode
  - - de.dhbwstuttgart.syntaxtree.GTVDeclarationContext
    - - de.dhbwstuttgart.syntaxtree.Field
      - - de.dhbwstuttgart.syntaxtree.Method

- All Implemented Interfaces:
    IItemWithOffset, Generic, GenericTypeInsertable, Typeable, TypeInsertable
  Direct Known Subclasses:
    Constant, Constructor, FunNMethod

      public class Method
      extends Field
      implements IItemWithOffset, TypeInsertable

  Stellt eine Methode dar. Problem: Parser kann nicht zwischen Methode und Konstruktor unterscheiden. Daher kann diese Klasse beides sein. Dies wird mit dem ParserPostProcessing behoben.
  Author:
    janulrich

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private Block` | `block`
    `private ExceptionList` | `exceptionlist`
    `protected static Logger` | `inferencelog`
    `private boolean` | `isAbstract`
    `private int` | `m_LineNumber`
    `private int` | `m_Offset`
    `private int` | `overloadedID` HOTI 4.5.06 Dieser Vektor beinhaltet alle Generischen Typen und v.a. die F-Bounded-Generics, die die Methode besitzt size()==0, falls es keine gibt
    `ParameterList` | `parameterlist`
    `protected static Logger` | `parserlog`
    `private Type` | `returntype`
    `private Menge<java.lang.String>` | `types_in_parameterlist`

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

      `declid`

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

      `parent`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Method(int offset)`
    `Method(java.lang.String name, Type returnType, ParameterList parameterList, Block block, GenericDeclarationList gtvDeclarations, int offset)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static Method` | `createEmptyMethod(java.lang.String withSignature, Class parent)`
    `TypeAssumptions` | `createTypeAssumptions(Class classmember)` Liefert die MethodAssumption zu dieser Methode
    `boolean` | `equals(java.lang.Object obj)`
    `Block` | `get_Block()`
    `ExceptionList` | `get_ExceptionList()`
    `java.lang.String` | `get_Method_Name()`
    `Menge` | `get_Type_Paralist()`
    `Menge<SyntaxTreeNode>` | `getChildren()`
    `int` | `getLineNumber()`
    `int` | `getOffset()`
    `int` | `getOverloadedID()`
    `int` | `getParameterCount()` Author: Jrg Buerle
    `ParameterList` | `getParameterList()`
    `Type` | `getType()` Der Typ einer Methode ist ihr Returntype
    `java.lang.String` | `getTypeInformation()`
    `int` | `getTypeLineNumber()` Author: Jrg Buerle
    `JavaClassName` | `getTypeName()`
    `int` | `getVariableLength()`
    `boolean` | `isAbstract()` Gibt zurueck, ob ByteCode innerhabl der Methode generiert wird.
    `void` | `parserPostProcessing(SyntaxTreeNode parent)` Wird nach dem Parsen aufgerufen.
    `JavaCodeResult` | `printJavaCode(ResultSet resultSet)`
    `void` | `set_Block(Block blo)`
    `void` | `set_ExceptionList(ExceptionList exlist)`
    `void` | `set_Method_Name(java.lang.String string)`
    `void` | `set_Modifiers(Modifiers modif)`
    `void` | `setAbstract(boolean b)` Legt fuer die ByteCodeGen fest, ob Bytecode innerhalb der Methode generiert wird.
    `void` | `setLineNumber(int lineNumber)`
    `void` | `setOffset(int Offset)`
    `void` | `setOverloadedID(int overloadedID)`
    `void` | `setParameterList(ParameterList paralist)`
    `private void` | `setReturnType(Type type)` Author: Jrg Buerle
    `void` | `setType(Type t)`
    `java.lang.String` | `toString()` Author: Martin PlÃ¯Â¿Â½micke
    `ConstraintsSet` | `TYPE(TypeAssumptions ass)`
    `void` | `wandleRefTypeAttributes2GenericAttributes(Menge<Type> classParalist)` Wird im Zuge des ParserPostProcessing aufgerufen.

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

      `createTypeInsertPoint, get_Name, getDeclIdMenge, getDescription, getGenericDeclarationList, getGenericParameter, getGenericVarDeclarationOffset, getGenericVarDeclarationString, getIdentifier, isClass, isPublic, set_DeclId, setDeclIdMenge, setGenericParameter`

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

      `getGTVDeclarationContext`

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

      `addTypeInsertPoints, getMatchingParentNode, getParent, getParentClass, seesType`

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

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

    - ### Methods inherited from interface de.dhbwstuttgart.typeinference.TypeInsertable

      `createTypeInsertPoint, getIdentifier`

- - ### Field Detail

    - #### block

          private Block block

    - #### parameterlist

          public ParameterList parameterlist

    - #### exceptionlist

          private ExceptionList exceptionlist

    - #### returntype

          private Type returntype

    - #### overloadedID

          private int overloadedID

      HOTI 4.5.06 Dieser Vektor beinhaltet alle Generischen Typen und v.a. die F-Bounded-Generics, die die Methode besitzt size()==0, falls es keine gibt

    - #### isAbstract

          private boolean isAbstract

    - #### types_in_parameterlist

          private Menge<java.lang.String> types_in_parameterlist

    - #### m_LineNumber

          private int m_LineNumber

    - #### m_Offset

          private int m_Offset

    - #### inferencelog

          protected static Logger inferencelog

    - #### parserlog

          protected static Logger parserlog

  - ### Constructor Detail

    - #### Method

          public Method(int offset)

    - #### Method

          public Method(java.lang.String name,
                        Type returnType,
                        ParameterList parameterList,
                        Block block,
                        GenericDeclarationList gtvDeclarations,
                        int offset)

  - ### Method Detail

    - #### getTypeName

          public JavaClassName getTypeName()

    - #### get_Block

          public Block get_Block()

    - #### setReturnType

          private void setReturnType(Type type)

      Author: Jrg Buerle
      Parameters:
        `type` -

    - #### set_Block

          public void set_Block(Block blo)

    - #### set_Modifiers

          public void set_Modifiers(Modifiers modif)

    - #### set_ExceptionList

          public void set_ExceptionList(ExceptionList exlist)

    - #### setParameterList

          public void setParameterList(ParameterList paralist)

    - #### getParameterList

          public ParameterList getParameterList()

    - #### getParameterCount

          public int getParameterCount()

      Author: Jrg Buerle
      Returns:
        Die Anzahl der Methoden-Paramater

    - #### get_ExceptionList

          public ExceptionList get_ExceptionList()

    - #### getOverloadedID

          public int getOverloadedID()

    - #### setOverloadedID

          public void setOverloadedID(int overloadedID)

    - #### get_Method_Name

          public java.lang.String get_Method_Name()

    - #### get_Type_Paralist

          public Menge get_Type_Paralist()

    - #### getLineNumber

          public int getLineNumber()

    - #### setLineNumber

          public void setLineNumber(int lineNumber)

    - #### getOffset

          public int getOffset()

      Specified by:
        `getOffset` in interface `IItemWithOffset`
      Specified by:
        `getOffset` in interface `TypeInsertable`
      Overrides:
        `getOffset` in class `Field`

    - #### getVariableLength

          public int getVariableLength()

      Specified by:
        `getVariableLength` in interface `IItemWithOffset`

    - #### setOffset

          public void setOffset(int Offset)

      Specified by:
        `setOffset` in interface `TypeInsertable`
      Overrides:
        `setOffset` in class `Field`

    - #### getTypeLineNumber

          public int getTypeLineNumber()

      Author: Jrg Buerle
      Returns:

    - #### toString

          public java.lang.String toString()

      Author: Martin PlÃ¯Â¿Â½micke
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:

    - #### setAbstract

          public void setAbstract(boolean b)

      Legt fuer die ByteCodeGen fest, ob Bytecode innerhalb der Methode generiert wird.

    - #### isAbstract

          public boolean isAbstract()

      Gibt zurueck, ob ByteCode innerhabl der Methode generiert wird.

    - #### wandleRefTypeAttributes2GenericAttributes

          public void wandleRefTypeAttributes2GenericAttributes(Menge<Type> classParalist)

      Description copied from class: `Field`
      Wird im Zuge des ParserPostProcessing aufgerufen. Der Parser kann den Unterschied zwischen einem RefType und einer GTV nicht erkennen. Diese Methode ersetzt die RefTypes gegebenenfalls durch eine GTV.
      Overrides:
        `wandleRefTypeAttributes2GenericAttributes` in class `Field`

    - #### set_Method_Name

          public void set_Method_Name(java.lang.String string)

    - #### TYPE

          public ConstraintsSet TYPE(TypeAssumptions ass)

      Specified by:
        `TYPE` in class `Field`

    - #### getTypeInformation

          public java.lang.String getTypeInformation()

      Returns:
        die TypInformationen der Statements dieser Methode.

    - #### printJavaCode

          public JavaCodeResult printJavaCode(ResultSet resultSet)

      Specified by:
        `printJavaCode` in class `Field`

    - #### createTypeAssumptions

          public TypeAssumptions createTypeAssumptions(Class classmember)

      Liefert die MethodAssumption zu dieser Methode
      Specified by:
        `createTypeAssumptions` in class `Field`
      Returns:

    - #### parserPostProcessing

          public void parserPostProcessing(SyntaxTreeNode parent)

      Description copied from class: `SyntaxTreeNode`
      Wird nach dem Parsen aufgerufen. ErfÃ¼llt folgenden Aufgaben: 1. FÃ¼llt fehlende Typangaben mit TPHs auf. 2. VerknÃ¼pft die Knoten des Syntaxbaums. (setzt Parent) 3. Wechselt RefTypes gegebenenfalls mit GenericTypeVars aus. 4. FÃ¼hrt einen Teil des Syntaxckecks durch.
      Overrides:
        `parserPostProcessing` in class `SyntaxTreeNode`

    - #### getChildren

          public Menge<SyntaxTreeNode> getChildren()

      Overrides:
        `getChildren` in class `Field`

    - #### setType

          public void setType(Type t)

      Specified by:
        `setType` in interface `Typeable`
      Overrides:
        `setType` in class `Field`
      Parameters:
        `t` - Der Typ der Typable-Expression/Statement

    - #### getType

          public Type getType()

      Der Typ einer Methode ist ihr Returntype
      Specified by:
        `getType` in interface `Typeable`
      Overrides:
        `getType` in class `Field`

    - #### createEmptyMethod

          public static Method createEmptyMethod(java.lang.String withSignature,
                                                 Class parent)

    - #### equals

          public boolean equals(java.lang.Object obj)

      Overrides:
        `equals` in class `SyntaxTreeNode`