Development Guide

Configurable

Configurable is an interface, which allows Extensions and Modules (ProxyModule, InterceptorModule) to store configuration data in the project configuration.

Compared to the Storable interface, Configurable interface allows you to let users create configurations for ProxyModules/InterceptorModules in GUI using Configurator class. Configuration loading precedes store loading.

Data are stored as JSON structure, however, for simplicity, serialization process is automatic.

Configurable interface

com.warxim.petep.persistence.Configurable
/**
 * Configurable interface that allows modules and extensions to be configured.
 * <p>Allows extensions/modules to load/save configuration of any serializable type.</p>
 * <p>Loading of all configurations occurs during start of PETEP.</p>
 * @param <C> Type of the configuration
 */
@PetepAPI
public interface Configurable<C> {
    /**
     * Obtains configuration to be saved.
     * @return Serializable configuration, which will be persisted by PETEP
     */
    C saveConfig();

    /**
     * Loads configuration.
     * @param config Deserialized configuration
     */
    void loadConfig(C config);
}