Software 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]) ]).