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

io.split.storages.pluggable.domain.PrefixAdapter Maven / Gradle / Ivy

package io.split.storages.pluggable.domain;

import java.util.ArrayList;
import java.util.List;

public class PrefixAdapter {

    private static final String DEFAULT_PREFIX = "SPLITIO.";
    private static final String SPLIT_PREFIX = "split.";
    private static final String SPLITS_PREFIX = "splits.";
    private static final String TRAFFIC_TYPE_PREFIX = "trafficType.";
    private static final String EVENTS = "events";
    private static final String IMPRESSIONS = "impressions";
    private static final String SEGMENT = "segment.";
    private static final String TILL = "till";
    private static final String TELEMETRY = "telemetry.";
    private static final String LATENCIES = "latencies";
    private static final String EXCEPTIONS = "exceptions";
    private static final String INIT = "init";

    public static String buildSplitKey(String name) {
        return String.format(DEFAULT_PREFIX+ SPLIT_PREFIX +"%s", name);
    }

    public static String buildSplitChangeNumber() {
        return DEFAULT_PREFIX+SPLITS_PREFIX+"till";
    }

    public static String buildGetAllSplit() {
        return DEFAULT_PREFIX+SPLIT_PREFIX+"*";
    }

    public static String buildTrafficTypeExists(String trafficType) {
        return String.format(DEFAULT_PREFIX+TRAFFIC_TYPE_PREFIX+"%s", trafficType);
    }

    public static List buildFetchManySplits(List names) {
        List prefixes = new ArrayList<>();
        for(String name : names) {
            prefixes.add(String.format(DEFAULT_PREFIX+ SPLIT_PREFIX +"%s", name));
        }
        return prefixes;
    }

    public static String buildEvent() {
        return DEFAULT_PREFIX+EVENTS;
    }

    public static String buildImpressions() {
        return DEFAULT_PREFIX+IMPRESSIONS;
    }

    public static String buildSegment(String segmentName) {
        return String.format(DEFAULT_PREFIX+SEGMENT+"%s", segmentName);
    }

    public static String buildSegmentAll() {
        return String.format(DEFAULT_PREFIX+SEGMENT+"*");
    }

    public static String buildSegmentTill(String segmentName) {
        return String.format(DEFAULT_PREFIX+SEGMENT+"%s."+TILL, segmentName);
    }

    public static String buildTelemetryLatenciesPrefix(String method, int bucketForLatency, String sdkVersion, String machineIp, String machineName) {
        return String.format(DEFAULT_PREFIX+TELEMETRY+LATENCIES+"::%s/%s/%s/"+"%s/%d", sdkVersion, machineName, machineIp, method, bucketForLatency);
    }

    public static String buildTelemetryExceptionsPrefix(String method, String sdkVersion, String machineIp, String machineName) {
        return String.format(DEFAULT_PREFIX+TELEMETRY+EXCEPTIONS+"::%s/%s/%s/"+"%s", sdkVersion, machineName, machineIp, method);
    }

    public static String buildTelemetryInit(String sdkVersion, String machineIp, String machineName) {
        return String.format(DEFAULT_PREFIX+TELEMETRY+INIT+"::%s/%s/%s", sdkVersion, machineName, machineIp);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy