SDA SE WikiSoftware Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering
Represents either a static or instance initializer declaration. If it is a static initializer there is also an associated PEF modifierT(#modiferId, #id, 'static'), where #id is the same as the one in the first argument of the classInitializer PEF.
Added in JT 2.8: Up to 2.8.0 it was part of methodDefT.
#id: id
the unique ID assigned to this fact.
#class: classT
ID of the parent (the declaring class).
#body: blockT
ID of the block.
public class InitializerTest {
int i;
{
i=0;
} // Instance initializer
static int j;
static {
j=0;
} // Static initializer
}
classT(51036,51075,'InitializerTest',[],[51053,51082,51054,51083]).
fieldT(51053,51036,10080,i,null).
classInitializerT(51082,51036,51088).
blockT(51088,51082,51082,[51090]).
execT(51090,51088,51082,51092).
assignT(51092,51090,51082,51093,51094).
fieldAccessT(51093,51092,51082,null,51053,10080).
literalT(51094,51092,51082,10080,'0').
fieldT(51054,51036,10080,j,null).
modifierT(51054, static).
classInitializerT(51083,51036,51098).
modifierT(51083, static).
blockT(51098,51083,51083,[51101]).
execT(51101,51098,51083,51103).
assignT(51103,51101,51083,51104,51105).
fieldAccessT(51104,51103,51083,null,51054,10080).
literalT(51105,51103,51083,10080,'0').
ast_node_type_spec(classInitializerT,[
ast_arg(id, mult(1,1,no ), id, [classInitializerT]),
ast_arg(parent, mult(1,1,no ), id, [classT]),
ast_arg(body, mult(0,1,no), id, [blockT])
]).