test_class.declarator: FAKE_FILE = new File(".")
test_class.modifier: private static final
test_class.original_string: private static final File FAKE_FILE = new File(".");
test_class.type: File
test_class.var_name: FAKE_FILE
test_class.declarator: STUB_CP = new PackageList.ContentProvider() {
      @Override
      @Nonnull
      public String readContent(@Nonnull final File file) throws IOException {
        throw new Error("Must not be called");
      }
    }
test_class.modifier: private static final
test_class.original_string: private static final PackageList.ContentProvider STUB_CP = new PackageList.ContentProvider() {
      @Override
      @Nonnull
      public String readContent(@Nonnull final File file) throws IOException {
        throw new Error("Must not be called");
      }
    };
test_class.type: PackageList.ContentProvider
test_class.var_name: STUB_CP
test_class.file: mvn-golang-wrapper/src/test/java/com/igormaznitsa/mvngolang/utils/PackageListTest.java
test_class.identifier: PackageListTest
test_case.body: @Test
    public void testRemoveComment_CheckQuotes_True() {
      assertEquals("", PackageList.removeComment("//",true));
      assertEquals("a", PackageList.removeComment("a//",true));
      assertEquals("a", PackageList.removeComment("a//b",true));
      assertEquals("a ", PackageList.removeComment("a //b",true));
      assertEquals("#include", PackageList.removeComment("#include//dddd",true));
      assertEquals("#include a/b/c", PackageList.removeComment("#include a/b/c//dddd",true));
      assertEquals("#include \"a/b/c//dddd\"", PackageList.removeComment("#include \"a/b/c//dddd\"",true));
      assertEquals("#include \"a/b/c//dddd\" ", PackageList.removeComment("#include \"a/b/c//dddd\" // kkkk",true));
      assertEquals("#include \"a/b/c\"", PackageList.removeComment("#include \"a/b/c\"//dddd\"",true));
    }
test_case.class_method_signature: PackageListTest.testRemoveComment_CheckQuotes_True()
test_case.full_signature: @Test public void testRemoveComment_CheckQuotes_True()
test_case.identifier: testRemoveComment_CheckQuotes_True
test_case.invocations: assertEquals removeComment assertEquals removeComment assertEquals removeComment assertEquals removeComment assertEquals removeComment assertEquals removeComment assertEquals removeComment assertEquals removeComment assertEquals removeComment
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testRemoveComment_CheckQuotes_True()
focal_class.declarator: packages
focal_class.modifier: private final
focal_class.original_string: private final List<Package> packages;
focal_class.type: List<Package>
focal_class.var_name: packages
focal_class.declarator: DIRECTIVE_INCLUDE = "#include"
focal_class.modifier: private static final
focal_class.original_string: private static final String DIRECTIVE_INCLUDE = "#include";
focal_class.type: String
focal_class.var_name: DIRECTIVE_INCLUDE
focal_class.file: mvn-golang-wrapper/src/main/java/com/igormaznitsa/mvngolang/utils/PackageList.java
focal_class.identifier: PackageList
focal_class.class_method_signature: PackageList.removeComment(@Nonnull final String text, final boolean checkQuotes)
focal_class.full_signature: @Nonnull static String removeComment(@Nonnull final String text, final boolean checkQuotes)
focal_class.identifier: removeComment
focal_class.modifiers: @Nonnull static
focal_class.parameters: (@Nonnull final String text, final boolean checkQuotes)
focal_class.return: String
focal_class.signature: String removeComment(@Nonnull final String text, final boolean checkQuotes)
focal_class.class_method_signature: PackageList.removeQuotes(@Nonnull final String text)
focal_class.full_signature: @Nonnull static String removeQuotes(@Nonnull final String text)
focal_class.identifier: removeQuotes
focal_class.modifiers: @Nonnull static
focal_class.parameters: (@Nonnull final String text)
focal_class.return: String
focal_class.signature: String removeQuotes(@Nonnull final String text)
focal_class.class_method_signature: PackageList.PackageList(@Nonnull @MustNotContainNull final File file, @Nonnull final String text, @Nonnull final ContentProvider contentProvider)
focal_class.full_signature: public  PackageList(@Nonnull @MustNotContainNull final File file, @Nonnull final String text, @Nonnull final ContentProvider contentProvider)
focal_class.identifier: PackageList
focal_class.modifiers: public
focal_class.parameters: (@Nonnull @MustNotContainNull final File file, @Nonnull final String text, @Nonnull final ContentProvider contentProvider)
focal_class.signature:  PackageList(@Nonnull @MustNotContainNull final File file, @Nonnull final String text, @Nonnull final ContentProvider contentProvider)
focal_class.class_method_signature: PackageList.getPackages()
focal_class.full_signature: @Nonnull @MustNotContainNull public List<Package> getPackages()
focal_class.identifier: getPackages
focal_class.modifiers: @Nonnull @MustNotContainNull public
focal_class.parameters: ()
focal_class.return: List<Package>
focal_class.signature: List<Package> getPackages()
focal_method.body: @Nonnull
    static String removeComment(@Nonnull final String text, final boolean checkQuotes) {
      int pos = -1;
      boolean quot = false;
      boolean found = false;
      for (int i = 0; i < text.length() && !found; i++) {
        switch (text.charAt(i)) {
          case '\"': {
            quot = !quot;
            pos = -1;
          }
          break;
          case '/': {
            if (!checkQuotes || !quot) {
              if (pos < 0) {
                pos = i;
              } else {
                found = true;
              }
            }
          }
          break;
          default: {
            pos = -1;
          }
          break;
        }
      }
      return found ? text.substring(0, pos) : text;
    }
focal_method.class_method_signature: PackageList.removeComment(@Nonnull final String text, final boolean checkQuotes)
focal_method.full_signature: @Nonnull static String removeComment(@Nonnull final String text, final boolean checkQuotes)
focal_method.identifier: removeComment
focal_method.invocations: length charAt substring
focal_method.modifiers: @Nonnull static
focal_method.parameters: (@Nonnull final String text, final boolean checkQuotes)
focal_method.return: String
focal_method.signature: String removeComment(@Nonnull final String text, final boolean checkQuotes)