All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.analogweb.util.ApplicationPropertiesHolder Maven / Gradle / Ivy

The newest version!
package org.analogweb.util;

import org.analogweb.Application;
import org.analogweb.ApplicationProperties;
import org.analogweb.core.ApplicationConfigurationException;

/**
 * Holds {@link ApplicationProperties} instance.
 *
 * @author snowgoose
 */
public final class ApplicationPropertiesHolder {

    private ApplicationPropertiesHolder() {
        // nop.
    }

    private static ApplicationProperties properties;

    /**
     * Set up {@link ApplicationProperties}.
     *
     * @param app
     *            {@link Application}
     * @param config
     *            {@link ApplicationProperties}
     *
     * @return {@link ApplicationProperties}
     */
    public static ApplicationProperties configure(Application app, ApplicationProperties config) {
        if (properties != null) {
            throw new ApplicationConfigurationException("re-configure ApplicationProperties not allowed.");
        }
        properties = config;
        return properties;
    }

    public static ApplicationProperties current() {
        if (properties == null) {
            throw new ApplicationConfigurationException("ApplicationProperties not configured yet.");
        }
        return properties;
    }

    public static void dispose(Application app) {
        properties = null;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy