test_class.file: php-frontend/src/test/java/org/sonar/php/metrics/CounterVisitorTest.java
test_class.identifier: CounterVisitorTest
test_class.superclass: extends ParsingTestUtils
test_case.body: @Test
    public void test_functions() throws Exception {
      CounterVisitor counterVisitor = new CounterVisitor(parse("metrics/functions.php"));
      assertThat(counterVisitor.getFunctionNumber()).isEqualTo(4);
    }
test_case.class_method_signature: CounterVisitorTest.test_functions()
test_case.full_signature: @Test public void test_functions()
test_case.identifier: test_functions
test_case.invocations: parse isEqualTo assertThat getFunctionNumber
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void test_functions()
focal_class.declarator: functionCounter = 0
focal_class.modifier: private
focal_class.original_string: private int functionCounter = 0;
focal_class.type: int
focal_class.var_name: functionCounter
focal_class.declarator: statementCounter = 0
focal_class.modifier: private
focal_class.original_string: private int statementCounter = 0;
focal_class.type: int
focal_class.var_name: statementCounter
focal_class.declarator: classCounter = 0
focal_class.modifier: private
focal_class.original_string: private int classCounter = 0;
focal_class.type: int
focal_class.var_name: classCounter
focal_class.declarator: STATEMENT_NODES = {
      Kind.USE_STATEMENT,
      Kind.NAMESPACE_STATEMENT,
      Kind.CONSTANT_DECLARATION,
      Kind.IF_STATEMENT,
      Kind.ALTERNATIVE_IF_STATEMENT,
      Kind.FOR_STATEMENT,
      Kind.FOREACH_STATEMENT,
      Kind.WHILE_STATEMENT,
      Kind.DO_WHILE_STATEMENT,
      Kind.SWITCH_STATEMENT,
      Kind.BREAK_STATEMENT,
      Kind.CONTINUE_STATEMENT,
      Kind.RETURN_STATEMENT,
      Kind.THROW_STATEMENT,
      Kind.TRY_STATEMENT,
      Kind.EMPTY_STATEMENT,
      Kind.EXPRESSION_STATEMENT,
      Kind.UNSET_VARIABLE_STATEMENT,
      Kind.LABEL,
      Kind.GOTO_STATEMENT,
      Kind.DECLARE_STATEMENT,
      Kind.STATIC_STATEMENT,
      Kind.GLOBAL_STATEMENT,
      Kind.CLASS_CONSTANT_PROPERTY_DECLARATION,
      Kind.CLASS_PROPERTY_DECLARATION,
      Kind.USE_TRAIT_DECLARATION
    }
focal_class.modifier: private static final
focal_class.original_string: private static final Kind[] STATEMENT_NODES = {
      Kind.USE_STATEMENT,
      Kind.NAMESPACE_STATEMENT,
      Kind.CONSTANT_DECLARATION,
      Kind.IF_STATEMENT,
      Kind.ALTERNATIVE_IF_STATEMENT,
      Kind.FOR_STATEMENT,
      Kind.FOREACH_STATEMENT,
      Kind.WHILE_STATEMENT,
      Kind.DO_WHILE_STATEMENT,
      Kind.SWITCH_STATEMENT,
      Kind.BREAK_STATEMENT,
      Kind.CONTINUE_STATEMENT,
      Kind.RETURN_STATEMENT,
      Kind.THROW_STATEMENT,
      Kind.TRY_STATEMENT,
      Kind.EMPTY_STATEMENT,
      Kind.EXPRESSION_STATEMENT,
      Kind.UNSET_VARIABLE_STATEMENT,
      Kind.LABEL,
      Kind.GOTO_STATEMENT,
      Kind.DECLARE_STATEMENT,
      Kind.STATIC_STATEMENT,
      Kind.GLOBAL_STATEMENT,
      Kind.CLASS_CONSTANT_PROPERTY_DECLARATION,
      Kind.CLASS_PROPERTY_DECLARATION,
      Kind.USE_TRAIT_DECLARATION
    };
focal_class.type: Kind[]
focal_class.var_name: STATEMENT_NODES
focal_class.file: php-frontend/src/main/java/org/sonar/php/metrics/CounterVisitor.java
focal_class.identifier: CounterVisitor
focal_class.class_method_signature: CounterVisitor.CounterVisitor(Tree tree)
focal_class.full_signature: public  CounterVisitor(Tree tree)
focal_class.identifier: CounterVisitor
focal_class.modifiers: public
focal_class.parameters: (Tree tree)
focal_class.signature:  CounterVisitor(Tree tree)
focal_class.class_method_signature: CounterVisitor.nodesToVisit()
focal_class.full_signature: @Override public List<Kind> nodesToVisit()
focal_class.identifier: nodesToVisit
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: List<Kind>
focal_class.signature: List<Kind> nodesToVisit()
focal_class.class_method_signature: CounterVisitor.visitNode(Tree tree)
focal_class.full_signature: @Override public void visitNode(Tree tree)
focal_class.identifier: visitNode
focal_class.modifiers: @Override public
focal_class.parameters: (Tree tree)
focal_class.return: void
focal_class.signature: void visitNode(Tree tree)
focal_class.class_method_signature: CounterVisitor.getFunctionNumber()
focal_class.full_signature: public int getFunctionNumber()
focal_class.identifier: getFunctionNumber
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getFunctionNumber()
focal_class.class_method_signature: CounterVisitor.getStatementNumber()
focal_class.full_signature: public int getStatementNumber()
focal_class.identifier: getStatementNumber
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getStatementNumber()
focal_class.class_method_signature: CounterVisitor.getClassNumber()
focal_class.full_signature: public int getClassNumber()
focal_class.identifier: getClassNumber
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getClassNumber()
focal_class.superclass: extends PHPSubscriptionCheck
focal_method.body: public int getFunctionNumber() {
      return functionCounter;
    }
focal_method.class_method_signature: CounterVisitor.getFunctionNumber()
focal_method.full_signature: public int getFunctionNumber()
focal_method.identifier: getFunctionNumber
focal_method.modifiers: public
focal_method.parameters: ()
focal_method.return: int
focal_method.signature: int getFunctionNumber()