/* * Copyright (C) 2010, Google Inc. and others * * This program and the accompanying materials are made available under the * terms of the Eclipse Distribution License v. 1.0 which is available at * https://www.eclipse.org/org/documents/edl-v10.php. * * SPDX-License-Identifier: BSD-3-Clause */ package org.eclipse.jgit.lib; import java.io.IOException; import org.eclipse.jgit.errors.ConfigInvalidException; /** * Persistent configuration that can be stored and loaded from a location. */ public abstract class StoredConfig extends Config { /** * Create a configuration with no default fallback. */ public StoredConfig() { super(); } /** * Create an empty configuration with a fallback for missing keys. * * @param defaultConfig * the base configuration to be consulted when a key is missing * from this configuration instance. */ public StoredConfig(Config defaultConfig) { super(defaultConfig); } /** * Load the configuration from the persistent store. *

* If the configuration does not exist, this configuration is cleared, and * thus behaves the same as though the backing store exists, but is empty. * * @throws java.io.IOException * the configuration could not be read (but does exist). * @throws org.eclipse.jgit.errors.ConfigInvalidException * the configuration is not properly formatted. */ public abstract void load() throws IOException, ConfigInvalidException; /** * Save the configuration to the persistent store. * * @throws java.io.IOException * the configuration could not be written. */ public abstract void save() throws IOException; /** {@inheritDoc} */ @Override public void clear() { super.clear(); } }