  Line 16) Charset.forName("utf-8") ==> java.nio.charset.Charset.forName(java.lang.String)
  Line 22) assertNotNull(reader) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
  Line 26) assertNotNull(input) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
  Line 27) assertNotNull(encoding) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
  Line 29) encoding.name() ==> java.nio.charset.Charset.name()
  Line 38) provider(input, UTF8) ==> com.github.javaparser.Providers.provider(java.io.InputStream, java.nio.charset.Charset)
  Line 42) provider(new FileInputStream(assertNotNull(file)), assertNotNull(encoding)) ==> com.github.javaparser.Providers.provider(java.io.InputStream, java.nio.charset.Charset)
  Line 42) assertNotNull(file) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
  Line 42) assertNotNull(encoding) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
  Line 46) provider(assertNotNull(file), UTF8) ==> com.github.javaparser.Providers.provider(java.io.File, java.nio.charset.Charset)
  Line 46) assertNotNull(file) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
  Line 50) provider(Files.newInputStream(assertNotNull(path)), assertNotNull(encoding)) ==> com.github.javaparser.Providers.provider(java.io.InputStream, java.nio.charset.Charset)
  Line 50) Files.newInputStream(assertNotNull(path)) ==> java.nio.file.Files.newInputStream(java.nio.file.Path, java.nio.file.OpenOption...)
  Line 50) assertNotNull(path) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
  Line 50) assertNotNull(encoding) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
  Line 54) provider(assertNotNull(path), UTF8) ==> com.github.javaparser.Providers.provider(java.nio.file.Path, java.nio.charset.Charset)
  Line 54) assertNotNull(path) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
  Line 58) assertNotNull(source) ==> com.github.javaparser.utils.Utils.assertNotNull(T)
