test_class.file: handlebars/src/test/java/com/github/jknack/handlebars/io/URLTemplateSourceTest.java
test_class.identifier: URLTemplateSourceTest
test_case.body: @Test
    public void lastModifiedFromJar() throws IOException {
      String jarFilename = "app.jar";
  
      URL jarUrl = PowerMock.createMock(URL.class);
      expect(jarUrl.getProtocol()).andReturn("file");
      expect(jarUrl.getFile()).andReturn(jarFilename);
  
      JarURLConnection juc = PowerMock.createMock(JarURLConnection.class);
      expect(juc.getJarFileURL()).andReturn(jarUrl);
  
      URL url = PowerMock.createMock(URL.class);
      expect(url.openConnection()).andReturn(juc);
  
      String filename = "home.hbs";
  
      Object[] mocks = {url, juc, jarUrl};
  
      PowerMock.replay(mocks);
  
      assertEquals(0, new URLTemplateSource(filename, url).lastModified());
  
      PowerMock.verify(mocks);
    }
test_case.class_method_signature: URLTemplateSourceTest.lastModifiedFromJar()
test_case.full_signature: @Test public void lastModifiedFromJar()
test_case.identifier: lastModifiedFromJar
test_case.invocations: createMock andReturn expect getProtocol andReturn expect getFile createMock andReturn expect getJarFileURL createMock andReturn expect openConnection replay assertEquals lastModified verify
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void lastModifiedFromJar()
focal_class.declarator: resource
focal_class.modifier: private
focal_class.original_string: private URL resource;
focal_class.type: URL
focal_class.var_name: resource
focal_class.declarator: lastModified
focal_class.modifier: private
focal_class.original_string: private Long lastModified;
focal_class.type: Long
focal_class.var_name: lastModified
focal_class.declarator: filename
focal_class.modifier: private
focal_class.original_string: private String filename;
focal_class.type: String
focal_class.var_name: filename
focal_class.file: handlebars/src/main/java/com/github/jknack/handlebars/io/URLTemplateSource.java
focal_class.identifier: URLTemplateSource
focal_class.class_method_signature: URLTemplateSource.URLTemplateSource(final String filename, final URL resource)
focal_class.full_signature: public  URLTemplateSource(final String filename, final URL resource)
focal_class.identifier: URLTemplateSource
focal_class.modifiers: public
focal_class.parameters: (final String filename, final URL resource)
focal_class.signature:  URLTemplateSource(final String filename, final URL resource)
focal_class.class_method_signature: URLTemplateSource.content(final Charset charset)
focal_class.full_signature: @Override public String content(final Charset charset)
focal_class.identifier: content
focal_class.modifiers: @Override public
focal_class.parameters: (final Charset charset)
focal_class.return: String
focal_class.signature: String content(final Charset charset)
focal_class.class_method_signature: URLTemplateSource.filename()
focal_class.full_signature: @Override public String filename()
focal_class.identifier: filename
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String filename()
focal_class.class_method_signature: URLTemplateSource.lastModified()
focal_class.full_signature: @Override public long lastModified()
focal_class.identifier: lastModified
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: long
focal_class.signature: long lastModified()
focal_class.class_method_signature: URLTemplateSource.reader(final Charset charset)
focal_class.full_signature: protected Reader reader(final Charset charset)
focal_class.identifier: reader
focal_class.modifiers: protected
focal_class.parameters: (final Charset charset)
focal_class.return: Reader
focal_class.signature: Reader reader(final Charset charset)
focal_class.class_method_signature: URLTemplateSource.lastModified(final URL resource)
focal_class.full_signature: private long lastModified(final URL resource)
focal_class.identifier: lastModified
focal_class.modifiers: private
focal_class.parameters: (final URL resource)
focal_class.return: long
focal_class.signature: long lastModified(final URL resource)
focal_class.superclass: extends AbstractTemplateSource
focal_method.body: @Override
    public long lastModified() {
      synchronized (this) {
        if (lastModified == null) {
          lastModified = lastModified(resource);
        }
        return lastModified;
      }
    }
focal_method.class_method_signature: URLTemplateSource.lastModified()
focal_method.full_signature: @Override public long lastModified()
focal_method.identifier: lastModified
focal_method.invocations: lastModified
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: long
focal_method.signature: long lastModified()