code: @Override
      protected String evalProgramName()
      {
          final String urlPath = getUrl().getPath();
          String name = urlPath.substring(urlPath.lastIndexOf('/') + 1);
          name = name.substring(0, name.lastIndexOf('.'));
  
          // regular expression for the package name
          final Pattern pckPattern = Pattern.compile("package +[^;]+;");
          final Matcher pckMatcher = pckPattern.matcher(getCode());
          if (pckMatcher.find()) {
              final String pkg = pckMatcher.group()
                                           .replaceFirst("^(package) +", "")
                                           .replaceFirst(";$", "");
              name = pkg + "." + name;
          }
          return name;
      }
docs: This Method extracts the package name and sets the name of this Java
  definition (the name is the package name together with the name of the
  file excluding the <code>.java</code>).
  
  @return class name of the ESJP