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

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

package net.customware.license.confluence.prefs;

import com.atlassian.confluence.user.AuthenticatedUserThreadLocal;
import com.atlassian.confluence.user.UserAccessor;
import com.atlassian.spring.container.ContainerManager;
import com.atlassian.user.User;
import com.opensymphony.module.propertyset.PropertySet;
import net.customware.license.support.util.AbstractLicensePreferences;

import java.util.prefs.AbstractPreferences;

public class ConfluenceUserPreferences extends AbstractLicensePreferences {
    private static final String PREFIX = "java.util.prefs:";

    private UserAccessor userAccessor;

    public ConfluenceUserPreferences() {
        super();
    }

    protected ConfluenceUserPreferences(ConfluenceUserPreferences parent, String name) {
        super(parent, name);
    }

    /**
     * Returns true.
     */
    @Override
    public boolean isUserNode() {
        return true;
    }

    private PropertySet getPropertySet() {
        User user = AuthenticatedUserThreadLocal.getUser();
        if (user != null)
            return getUserAccessor().getPropertySet(user);

        return null;
    }

    private UserAccessor getUserAccessor() {
        if (userAccessor == null)
            userAccessor = (UserAccessor) ContainerManager.getComponent("userAccessor");
        return userAccessor;
    }

    @Override
    protected String getSpi(String key) {
        return getPropertySet().getText(getFullPath(key));
    }

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

    @Override
    protected void putSpi(String key, String value) {
        getPropertySet().setText(getFullPath(key), value);
    }

    @Override
    protected void removeSpi(String key) {
        getPropertySet().remove(getFullPath(key));
    }

    @Override
    protected AbstractPreferences childSpi(final String name) {
        return new ConfluenceUserPreferences(this, name);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy