test_class.declarator: D0 = {{1.2, 2.3}}
test_class.modifier: static final
test_class.original_string: static final double[][] D0 = {{1.2, 2.3}};
test_class.type: double[][]
test_class.var_name: D0
test_class.declarator: D2 = {{1.2, 2.3}, {3.4, 4.5}, {5.6, 6.7}, {7.8, 8.9}}
test_class.modifier: static final
test_class.original_string: static final double[][] D2 = {{1.2, 2.3}, {3.4, 4.5}, {5.6, 6.7}, {7.8, 8.9}};
test_class.type: double[][]
test_class.var_name: D2
test_class.declarator: A0
test_class.modifier: static
test_class.original_string: static JdbcAccessor A0;
test_class.type: JdbcAccessor
test_class.var_name: A0
test_class.declarator: A2
test_class.modifier: static
test_class.original_string: static JdbcAccessor A2;
test_class.type: JdbcAccessor
test_class.var_name: A2
test_class.file: jdbcprovider/src/test/java/ec/tss/tsproviders/jdbc/JdbcAccessorTest.java
test_class.identifier: JdbcAccessorTest
test_case.body: @Test
      public void testCache() throws Exception {
          JdbcBean b2c1 = mydbTwoDimsBean();
          b2c1.setCacheDepth(1);
          DbAccessor a2c1 = new JdbcAccessor(NOP_LOGGER, b2c1, mydbConnectionSupplier()).memoize();
          DbSeries a2c1_first = a2c1.getSeriesWithData("Industry", "Belgium");
          DbSeries a2c1_second = a2c1.getSeriesWithData("Industry", "Belgium");
  
          assertEquals(a2c1_first, a2c1_second);
          assertSame(a2c1_first, a2c1_second);
  
          JdbcBean b2c2 = mydbTwoDimsBean();
          b2c2.setCacheDepth(2);
          DbAccessor a2c2 = new JdbcAccessor(NOP_LOGGER, b2c2, mydbConnectionSupplier()).memoize();
          DbSeries a2c2_first = a2c2.getSeriesWithData("Industry", "Belgium");
          DbSeries a2c2_second = a2c2.getSeriesWithData("Industry", "Belgium");
  
          assertEquals(a2c2_first, a2c2_second);
          assertSame(a2c2_first, a2c2_second);
  
          assertEquals(a2c1_first, a2c2_first);
          assertNotSame(a2c1_first, a2c2_first);
      }
test_case.class_method_signature: JdbcAccessorTest.testCache()
test_case.full_signature: @Test public void testCache()
test_case.identifier: testCache
test_case.invocations: mydbTwoDimsBean setCacheDepth memoize mydbConnectionSupplier getSeriesWithData getSeriesWithData assertEquals assertSame mydbTwoDimsBean setCacheDepth memoize mydbConnectionSupplier getSeriesWithData getSeriesWithData assertEquals assertSame assertEquals assertNotSame
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testCache()
focal_class.declarator: logger
focal_class.modifier: protected final
focal_class.original_string: protected final Logger logger;
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: supplier
focal_class.modifier: protected final
focal_class.original_string: protected final ConnectionSupplier supplier;
focal_class.type: ConnectionSupplier
focal_class.var_name: supplier
focal_class.file: jdbcprovider/src/main/java/ec/tss/tsproviders/jdbc/JdbcAccessor.java
focal_class.identifier: JdbcAccessor
focal_class.class_method_signature: JdbcAccessor.JdbcAccessor(@NonNull Logger logger, @NonNull BEAN dbBean, @NonNull ConnectionSupplier supplier)
focal_class.full_signature: public  JdbcAccessor(@NonNull Logger logger, @NonNull BEAN dbBean, @NonNull ConnectionSupplier supplier)
focal_class.identifier: JdbcAccessor
focal_class.modifiers: public
focal_class.parameters: (@NonNull Logger logger, @NonNull BEAN dbBean, @NonNull ConnectionSupplier supplier)
focal_class.signature:  JdbcAccessor(@NonNull Logger logger, @NonNull BEAN dbBean, @NonNull ConnectionSupplier supplier)
focal_class.class_method_signature: JdbcAccessor.testDbBean()
focal_class.full_signature: @Override public Exception testDbBean()
focal_class.identifier: testDbBean
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Exception
focal_class.signature: Exception testDbBean()
focal_class.class_method_signature: JdbcAccessor.getChildFunc(@NonNull ResultSetMetaData metaData, int columnIndex)
focal_class.full_signature: @NonNull protected ResultSetFunc<String> getChildFunc(@NonNull ResultSetMetaData metaData, int columnIndex)
focal_class.identifier: getChildFunc
focal_class.modifiers: @NonNull protected
focal_class.parameters: (@NonNull ResultSetMetaData metaData, int columnIndex)
focal_class.return: ResultSetFunc<String>
focal_class.signature: ResultSetFunc<String> getChildFunc(@NonNull ResultSetMetaData metaData, int columnIndex)
focal_class.class_method_signature: JdbcAccessor.getDimValuesFunc(@NonNull ResultSetMetaData metaData, int firstColumnIndex, int length)
focal_class.full_signature: @NonNull protected ResultSetFunc<String[]> getDimValuesFunc(@NonNull ResultSetMetaData metaData, int firstColumnIndex, int length)
focal_class.identifier: getDimValuesFunc
focal_class.modifiers: @NonNull protected
focal_class.parameters: (@NonNull ResultSetMetaData metaData, int firstColumnIndex, int length)
focal_class.return: ResultSetFunc<String[]>
focal_class.signature: ResultSetFunc<String[]> getDimValuesFunc(@NonNull ResultSetMetaData metaData, int firstColumnIndex, int length)
focal_class.class_method_signature: JdbcAccessor.getPeriodFunc(@NonNull ResultSetMetaData metaData, int columnIndex)
focal_class.full_signature: @NonNull protected ResultSetFunc<java.util.Date> getPeriodFunc(@NonNull ResultSetMetaData metaData, int columnIndex)
focal_class.identifier: getPeriodFunc
focal_class.modifiers: @NonNull protected
focal_class.parameters: (@NonNull ResultSetMetaData metaData, int columnIndex)
focal_class.return: ResultSetFunc<java.util.Date>
focal_class.signature: ResultSetFunc<java.util.Date> getPeriodFunc(@NonNull ResultSetMetaData metaData, int columnIndex)
focal_class.class_method_signature: JdbcAccessor.getValueFunc(@NonNull ResultSetMetaData metaData, int columnIndex)
focal_class.full_signature: @NonNull protected ResultSetFunc<Number> getValueFunc(@NonNull ResultSetMetaData metaData, int columnIndex)
focal_class.identifier: getValueFunc
focal_class.modifiers: @NonNull protected
focal_class.parameters: (@NonNull ResultSetMetaData metaData, int columnIndex)
focal_class.return: ResultSetFunc<Number>
focal_class.signature: ResultSetFunc<Number> getValueFunc(@NonNull ResultSetMetaData metaData, int columnIndex)
focal_class.class_method_signature: JdbcAccessor.getAllSeriesQuery(DbSetId ref)
focal_class.full_signature: @Override protected Callable<List<DbSetId>> getAllSeriesQuery(DbSetId ref)
focal_class.identifier: getAllSeriesQuery
focal_class.modifiers: @Override protected
focal_class.parameters: (DbSetId ref)
focal_class.return: Callable<List<DbSetId>>
focal_class.signature: Callable<List<DbSetId>> getAllSeriesQuery(DbSetId ref)
focal_class.class_method_signature: JdbcAccessor.getAllSeriesWithDataQuery(DbSetId ref)
focal_class.full_signature: @Override protected Callable<List<DbSeries>> getAllSeriesWithDataQuery(DbSetId ref)
focal_class.identifier: getAllSeriesWithDataQuery
focal_class.modifiers: @Override protected
focal_class.parameters: (DbSetId ref)
focal_class.return: Callable<List<DbSeries>>
focal_class.signature: Callable<List<DbSeries>> getAllSeriesWithDataQuery(DbSetId ref)
focal_class.class_method_signature: JdbcAccessor.getSeriesWithDataQuery(DbSetId ref)
focal_class.full_signature: @Override protected Callable<DbSeries> getSeriesWithDataQuery(DbSetId ref)
focal_class.identifier: getSeriesWithDataQuery
focal_class.modifiers: @Override protected
focal_class.parameters: (DbSetId ref)
focal_class.return: Callable<DbSeries>
focal_class.signature: Callable<DbSeries> getSeriesWithDataQuery(DbSetId ref)
focal_class.class_method_signature: JdbcAccessor.getChildrenQuery(DbSetId ref)
focal_class.full_signature: @Override protected Callable<List<String>> getChildrenQuery(DbSetId ref)
focal_class.identifier: getChildrenQuery
focal_class.modifiers: @Override protected
focal_class.parameters: (DbSetId ref)
focal_class.return: Callable<List<String>>
focal_class.signature: Callable<List<String>> getChildrenQuery(DbSetId ref)
focal_class.class_method_signature: JdbcAccessor.memoize()
focal_class.full_signature: @Override public DbAccessor<BEAN> memoize()
focal_class.identifier: memoize
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: DbAccessor<BEAN>
focal_class.signature: DbAccessor<BEAN> memoize()
focal_class.superclass: extends DbAccessor.Commander<BEAN>
focal_method.body: @Override
      public DbAccessor<BEAN> memoize() {
          Duration duration = Duration.ofMillis(dbBean.getCacheTtl());
          return DbAccessor.BulkAccessor.from(this, dbBean.getCacheDepth(), GuavaCaches.ttlCache(duration));
      }
focal_method.class_method_signature: JdbcAccessor.memoize()
focal_method.full_signature: @Override public DbAccessor<BEAN> memoize()
focal_method.identifier: memoize
focal_method.invocations: ofMillis getCacheTtl from getCacheDepth ttlCache
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: DbAccessor<BEAN>
focal_method.signature: DbAccessor<BEAN> memoize()