private void checkExisting(
      File targetFile, ClassLoader classLoader, Document doc, Set<String> entityClasses) {
    if (targetFile.exists()) {
      final Set<String> alreadyDefined = PersistenceXmlHelper.getClassesAlreadyDefined(doc);
      for (String className : alreadyDefined) {
        if (!ReflectionHelper.classExists(className, classLoader)) {
          getLog().warn("Class " + className + " defined in " + targetFile + " does not exist");
        }
      }

      if (!alreadyDefined.containsAll(entityClasses)) {
        final Set<String> undefined = new TreeSet<>();
        for (String className : entityClasses) {
          if (!alreadyDefined.contains(className)) {
            undefined.add(className);
          }
        }

        getLog()
            .warn(
                "The following classes was not defined in "
                    + targetFile
                    + " even "
                    + "though they are available on the class path: "
                    + Arrays.toString(undefined.toArray()));
      }

      // Don't add so we end up with duplicates
      entityClasses.removeAll(alreadyDefined);
    }
  }