com.atlassian.jira.help.AnalyticsHelpUrlBuilder.java Source code

Java tutorial

Introduction

Here is the source code for com.atlassian.jira.help.AnalyticsHelpUrlBuilder.java

Source

package com.atlassian.jira.help;

import com.atlassian.jira.license.JiraLicenseManager;
import com.atlassian.jira.license.LicenseDetails;
import com.atlassian.jira.util.BuildUtilsInfo;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableMap;

import java.util.Map;
import javax.annotation.Nonnull;

import static com.atlassian.jira.util.dbc.Assertions.notNull;

/**
 * @since v6.2.4
 */
public class AnalyticsHelpUrlBuilder extends HelpUrlBuilderTemplate {
    private static final String OD_EVAL_LICENSE_CAMPAIGN = "qAwr63Ru";
    private static final String OD_STARTER_LICENSE_CAMPAIGN = "nEJAsw6b";
    private static final String OD_FULL_LICENSE_CAMPAIGN = "r4BuneYU";
    private static final String OD_ENTERPRISE_LICENSE_CAMPAIGN = "yuX3vawa";

    private final JiraLicenseManager licenseManager;

    @VisibleForTesting
    AnalyticsHelpUrlBuilder(String prefix, String suffix, final JiraLicenseManager licenseManager) {
        super(prefix, suffix);
        this.licenseManager = notNull("licenseManager", licenseManager);
    }

    @Nonnull
    @Override
    Map<String, String> getExtraParameters() {
        final String licenseType = getLicenseType();
        if (licenseType != null) {
            return ImmutableMap.of("utm_campaign", licenseType, "utm_medium", "navbar", "utm_source", "inproduct");
        } else {
            return ImmutableMap.of();
        }
    }

    @Override
    HelpUrlBuilder newInstance() {
        return new AnalyticsHelpUrlBuilder(getPrefix(), getSuffix(), licenseManager);
    }

    private String getLicenseType() {
        final LicenseDetails licenseDetails = licenseManager.getLicense();
        if (licenseDetails == null) {
            return null;
        }
        if (licenseDetails.isEvaluation()) {
            return OD_EVAL_LICENSE_CAMPAIGN;
        } else {
            final int maxUsers = licenseDetails.getMaximumNumberOfUsers();
            if (maxUsers == 10) {
                return OD_STARTER_LICENSE_CAMPAIGN;
            } else if (maxUsers > 500 || licenseDetails.isUnlimitedNumberOfUsers()) {
                return OD_ENTERPRISE_LICENSE_CAMPAIGN;
            } else if (maxUsers > 10) {
                return OD_FULL_LICENSE_CAMPAIGN;
            } else {
                return null;
            }
        }
    }

    public static class Factory extends HelpUrlBuilderFactoryTemplate {
        private final JiraLicenseManager licenseManager;

        public Factory(final BuildUtilsInfo info, final JiraLicenseManager licenseManager) {
            super(info);
            this.licenseManager = notNull("licenseManager", licenseManager);
        }

        @Override
        HelpUrlBuilder newUrlBuilder(final String prefix, final String suffix) {
            return new AnalyticsHelpUrlBuilder(prefix, suffix, licenseManager);
        }
    }
}