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

net.customware.license.confluence.prefs.AbstractBandanaPreferences Maven / Gradle / Ivy

package net.customware.license.confluence.prefs;

import net.customware.license.support.util.AbstractLicensePreferences;

import com.atlassian.bandana.BandanaContext;
import com.atlassian.bandana.BandanaManager;
import com.atlassian.spring.container.ContainerManager;

public abstract class AbstractBandanaPreferences extends AbstractLicensePreferences {

    private static final String PREFIX = "java.util.prefs:";

    private BandanaManager bandanaManager;

    private BandanaContext ctx;

    public AbstractBandanaPreferences( BandanaContext ctx ) {
        this( ctx, null, "" );
    }

    public AbstractBandanaPreferences( BandanaContext ctx, AbstractBandanaPreferences parent, String path ) {
        super( parent, path );
        this.ctx = ctx;
    }

    @Override protected String getSpi( String key ) {
        return ( String ) getBandanaManager().getValue( ctx, getFullPath( key ) );
    }

    private String getFullPath( String key ) {
        return PREFIX + absolutePath() + "//" + key;
    }

    @Override protected void putSpi( String key, String value ) {
        getBandanaManager().setValue( ctx, getFullPath( key ), value );
    }

    @Override protected void removeSpi( String key ) {
        getBandanaManager().setValue( ctx, getFullPath( key ), null );
    }

    protected BandanaManager getBandanaManager() {
        if ( bandanaManager == null )
            bandanaManager = ( BandanaManager ) ContainerManager.getComponent( "bandanaManager" );
        return bandanaManager;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy