package org.rakam.plugin.user; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; import io.airlift.configuration.Config; import java.util.List; public class UserPluginConfig { private String storageModule; private List<String> hiddenColumns; private boolean mailboxEnabled; private String mailBoxStorageModule; private String sessionColumn; private boolean enableUserMapping = false; private String identifierColumn; private boolean funnelAnalysisEnabled = true; private boolean retentionAnalysisEnabled = true; private Iterable<String> actions; private boolean automationEnabled; private boolean abTestingEnabled; @Config("plugin.user.storage.identifier-column") public UserPluginConfig setIdentifierColumn(String colName) { this.identifierColumn = colName; return this; } @Config("plugin.user.enable-user-mapping") public void setEnableUserMapping(boolean enableUserMapping) { this.enableUserMapping = enableUserMapping; } public boolean getEnableUserMapping() { return enableUserMapping; } public String getIdentifierColumn() { return identifierColumn; } @Config("plugin.user.actions") public UserPluginConfig setActionList(String actions) { this.actions = Splitter.on(",").trimResults().split(actions); return this; } public Iterable<String> getActionList() { return actions; } @Config("user.storage.session-column") public void setSessionColumn(String sessionColumn) { this.sessionColumn = sessionColumn; } public String getSessionColumn() { return sessionColumn; } @Config("plugin.user.mailbox.enable") public void setMailboxEnabled(boolean mailboxEnabled) { this.mailboxEnabled = mailboxEnabled; } public boolean isMailboxEnabled() { return mailboxEnabled; } @Config("user.funnel-analysis.enabled") public void setFunnelAnalysisEnabled(boolean funnelAnalysisEnabled) { this.funnelAnalysisEnabled = funnelAnalysisEnabled; } public boolean isFunnelAnalysisEnabled() { return funnelAnalysisEnabled; } @Config("automation.enabled") public void setAutomationEnabled(boolean automationEnabled) { this.automationEnabled = automationEnabled; } public boolean getAutomationEnabled() { return automationEnabled; } @Config("event.ab-testing.enabled") public void setAbTestingEnabled(boolean abTestingEnabled) { this.abTestingEnabled = abTestingEnabled; } public boolean getAbTestingEnabled() { return abTestingEnabled; } @Config("user.retention-analysis.enabled") public void setRetentionAnalysisEnabled(boolean retentionAnalysisEnabled) { this.retentionAnalysisEnabled = retentionAnalysisEnabled; } public boolean isRetentionAnalysisEnabled() { return retentionAnalysisEnabled; } @Config("plugin.user.storage.hide-columns") public void setHiddenColumns(String hiddenColumns) { this.hiddenColumns = ImmutableList.copyOf(Splitter.on(',').omitEmptyStrings().trimResults().split(hiddenColumns)); } @Config("plugin.user.mailbox.persistence") public void setMailBoxStorageModule(String module) { this.mailBoxStorageModule = module; } public String getMailBoxStorageModule() { return mailBoxStorageModule; } public List<String> getHiddenColumns() { return hiddenColumns; } @Config("plugin.user.storage") public UserPluginConfig setStorageModule(String moduleName) { this.storageModule = moduleName; return this; } public String getStorageModule() { return storageModule; } }