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
`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
`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`