class AspectJCollector {
protected boolean inter_type_method_flag = false;
protected boolean inter_type_constructor_flag = false;
protected boolean inter_type_field_flag = false;
protected boolean aspect_variable_flag = false;
protected boolean advice_flag = false;
protected boolean method_flag = false;
protected boolean constructor_flag = false;
protected boolean aspect_flag = false;
protected boolean class_flag = false;
protected boolean interface_flag = false;
private boolean tmp_aspect_flag = false;
private boolean tmp_class_flag = false;
private boolean tmp_interface_flag = false;
protected int nested_block_count = 0;
public void Block() throws ParseException {
nested_block_count++;
super.Block();
nested_block_count--;
}
public void MethodDeclaration() throws ParseException {
method_flag = true;
super.MethodDeclaration();
method_flag = false;
}
public void ConstructorDeclaration() throws ParseException {
constructor_flag = true;
super.ConstructorDeclaration();
constructor_flag = false;
}
public void AdviceDeclaration() throws ParseException {
advice_flag = true;
super.AdviceDeclaration();
advice_flag = false;
}
public void AspectVariableDeclarator() throws ParseException {
aspect_variable_flag = true;
super.AspectVariableDeclarator();
aspect_variable_flag = false;
}
public void BasicTypePatternDot() throws ParseException {
if(aspect_variable_flag == true)
inter_type_field_flag = true;
super.BasicTypePatternDot();
}
public void InterTypeMethodDeclaration() throws ParseException {
inter_type_method_flag = true;
super.InterTypeMethodDeclaration();
inter_type_method_flag = false;
}
public void InterTypeConstructorDeclaration() throws ParseException {
inter_type_constructor_flag = true;
super.InterTypeConstructorDeclaration();
inter_type_constructor_flag = false;
}
public void AspectBody() throws ParseException {
saveState();
aspect_flag = true;
class_flag = false;
interface_flag = false;
super.AspectBody();
recoverState();
}
public void ClassBody() throws ParseException {
saveState();
aspect_flag = false;
class_flag = true;
interface_flag = false;
super.ClassBody();
recoverState();
}
public void InterfaceMemberDeclaration() throws ParseException {
saveState();
aspect_flag = false;
class_flag = false;
interface_flag = true;
super.InterfaceMemberDeclaration();
recoverState();
}
private void saveState() {
tmp_aspect_flag = aspect_flag;
tmp_class_flag = class_flag;
tmp_interface_flag = interface_flag;
}
private void recoverState() {
aspect_flag = tmp_aspect_flag;
class_flag = tmp_class_flag;
interface_flag = tmp_interface_flag;
}
}