/**
   * Creates and loads the configuration from the specified file.
   *
   * @param file The file to load.
   * @throws ConfigurationException Error while loading the file
   * @since 1.1
   */
  public AbstractFileConfiguration(File file) throws ConfigurationException {
    this();

    // set the file and update the url, the base path and the file name
    setFile(file);

    // load the file
    if (file.exists()) {
      load();
    }
  }
 /**
  * Sets the location of this configuration as a full or relative path name. The passed in path
  * should represent a valid file name on the file system. It must not be used to specify relative
  * paths for files that exist in classpath, either plain file system or compressed archive,
  * because this method expands any relative path to an absolute one which may end in an invalid
  * absolute path for classpath references.
  *
  * @param path the full path name of the configuration file
  */
 public void setPath(String path) {
   setFile(new File(path));
 }