SDA SE WikiSoftware Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering
Represents the declaration of a method. Static methods have an additional fact modifierT(ID, MethodId, 'static'). Note that (since JT 2.8) constructors are represented separately by constructorT facts and static initializers are represented by classInitializerT facts (see migration tips).
Changed in JT 2.8: Up to 2.8.0 it was part of methodDefT.
#id: id
the unique ID of this method.
#class: classT
the ID of the class containing this method.
'name': atom
the name of the declared method
[#param_1,…]: paramT
the list of IDs of the method parameters.
#type: a typeinst
the id of the return type of the method
[#exception_1,…]: classT, typeParamT
list of IDs of checked exceptions thrown by this method.
[#typeparam_1,…]: typeParamT
the list of IDs of the type parameters.
#body: blockT or 'null'
ID of the block containing the method body
class HelloWorld { // -> classT below
public static void main(String[] args) // -> methodT and modifierT below
{ // -> blockT below
System.out.println("Hello World!"); // omitted below
}
}
classT(#class, #compilationUnit, 'HelloWorld', [..., #meth]). methodT(#meth, #class, 'main', [#param], #type, [], [], #body). modifierT(#meth,'static'). paramT(#param, ...). blockT(#body, #meth, #meth, [#printStatement]). ...
ast_node_type_spec(methodT,[
ast_arg(id, mult(1,1,no ), id, [methodT]),
ast_arg(parent, mult(1,1,no ), id, [classT]),
ast_arg(name, mult(1,1,no ), attr,[atomic]),
ast_arg(params, mult(0,*,ord), id, [paramT]),
ast_arg(type, mult(1,1,no), id, [type_inst]),
ast_arg(excepts, mult(0,*,ord), id, [classT, typeParamT]),
ast_arg(paramRef,mult(1,*,ord ),id, [typeParamT]),
ast_arg(body, mult(0,1,no), id, [blockT,nullType])
]).