test_class.file: java/algorithm/src/test/java/org/apidesign/demo/sieve/eratosthenes/PrimesTest.java
test_class.identifier: PrimesTest
test_case.body: @Test
      public void fifthThousandThPrime() {
          Primes p = new Primes() {
              @Override
              protected void log(String msg) {
              }
          };
          int last = p.compute();
          assertEquals("100000th prime is", 1_299_709, last);
      }
test_case.class_method_signature: PrimesTest.fifthThousandThPrime()
test_case.full_signature: @Test public void fifthThousandThPrime()
test_case.identifier: fifthThousandThPrime
test_case.invocations: compute assertEquals
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void fifthThousandThPrime()
focal_class.declarator: natural
focal_class.modifier: private final
focal_class.original_string: private final Natural natural;
focal_class.type: Natural
focal_class.var_name: natural
focal_class.declarator: filter
focal_class.modifier: private
focal_class.original_string: private Filter filter;
focal_class.type: Filter
focal_class.var_name: filter
focal_class.file: java/algorithm/src/main/java/org/apidesign/demo/sieve/eratosthenes/Primes.java
focal_class.identifier: Primes
focal_class.class_method_signature: Primes.Primes()
focal_class.full_signature: protected  Primes()
focal_class.identifier: Primes
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.signature:  Primes()
focal_class.class_method_signature: Primes.next()
focal_class.full_signature:  int next()
focal_class.identifier: next
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int next()
focal_class.class_method_signature: Primes.log(String msg)
focal_class.full_signature: protected abstract void log(String msg)
focal_class.identifier: log
focal_class.modifiers: protected abstract
focal_class.parameters: (String msg)
focal_class.return: void
focal_class.signature: void log(String msg)
focal_class.class_method_signature: Primes.compute()
focal_class.full_signature: public final int compute()
focal_class.identifier: compute
focal_class.modifiers: public final
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int compute()
focal_class.class_method_signature: Primes.main(String... args)
focal_class.full_signature: public static void main(String... args)
focal_class.identifier: main
focal_class.modifiers: public static
focal_class.parameters: (String... args)
focal_class.return: void
focal_class.signature: void main(String... args)
focal_method.body: public final int compute() {
          long start = System.currentTimeMillis();
          int cnt = 0;
          int prntCnt = 97;
          int res;
          for (;;) {
              res = next();
              cnt += 1;
              if (cnt % prntCnt == 0) {
                  log("Computed " + cnt + " primes in " + (System.currentTimeMillis() - start) + " ms. Last one is " + res);
                  prntCnt *= 2;
              }
              if (cnt >= 100000) {
                  break;
              }
          }
          return res;
      }
focal_method.class_method_signature: Primes.compute()
focal_method.full_signature: public final int compute()
focal_method.identifier: compute
focal_method.invocations: currentTimeMillis next log currentTimeMillis
focal_method.modifiers: public final
focal_method.parameters: ()
focal_method.return: int
focal_method.signature: int compute()