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, 'static')”, where ID is the #id value of the method. 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 Type reference
the id of the return type of the method
[#exception_1,…]: typeRefT
list of IDs of checked exceptions thrown by this method.
#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_def('Java',methodT,[ ast_arg(id, mult(1,1,no ), id, [methodT]), % <-- convention!!! ast_arg(parent, mult(1,1,no ), id, [classT]), ast_arg(name, mult(1,1,no ), attr,[atom]), ast_arg(params, mult(0,*,ord), id, [paramT]), ast_arg(type, mult(1,1,no), id, [typeInst]), ast_arg(excepts, mult(0,*,ord), id, [typeRefT]), ast_arg(body, mult(0,1,no), id, [blockT, nullType]) ]).