TestandtargetExperience.java 3.6 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  org.apache.commons.lang.StringUtils
 */
package com.day.cq.analytics.testandtarget.impl.model;

import com.day.cq.analytics.testandtarget.impl.TestandtargetSegment;
import com.day.cq.analytics.testandtarget.impl.model.TestandtargetOffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import org.apache.commons.lang.StringUtils;

public class TestandtargetExperience {
    public static final long DEFAULT_EXPERIENCE_LOCAL_ID = 0;
    public static final long NO_LOCAL_ID = -1;
    private static final int MAX_TARGET_NAME_SIZE = 20;
    private long experienceLocalId = -1;
    private transient String internalName;
    private String name;
    private final transient List<TestandtargetSegment> segments;
    private final Integer visitorPercentage;
    private final transient List<TestandtargetOffer> offers = new ArrayList<TestandtargetOffer>();

    public static /* varargs */ TestandtargetExperience newSegmentBasedExperience(String name, TestandtargetSegment ... segments) {
        return new TestandtargetExperience(name, null, segments);
    }

    public static TestandtargetExperience newPercentageBasedExperience(String name, Integer percentageConstraint) {
        return new TestandtargetExperience(name, percentageConstraint, new TestandtargetSegment[0]);
    }

    public static TestandtargetExperience newDefaultExperience() {
        return new TestandtargetExperience("Default", null, new TestandtargetSegment[0]);
    }

    public static /* varargs */ TestandtargetExperience newSegmentAndPercentBasedExperience(String name, Integer percentageConstraint, TestandtargetSegment ... segments) {
        return new TestandtargetExperience(name, percentageConstraint, segments);
    }

    private /* varargs */ TestandtargetExperience(String name, Integer percentage, TestandtargetSegment ... segments) {
        this.internalName = name;
        this.segments = new ArrayList<TestandtargetSegment>(Arrays.asList(segments));
        this.visitorPercentage = percentage;
        this.name = StringUtils.left((String)name, (int)20).trim();
    }

    public TestandtargetExperience withLocalId(long localId) {
        this.experienceLocalId = localId;
        return this;
    }

    public void addOffer(TestandtargetOffer offer) {
        this.offers.add(offer);
    }

    public String getInternalName() {
        return this.internalName;
    }

    public List<TestandtargetSegment> getSegments() {
        return this.segments;
    }

    public List<TestandtargetSegment> getSegment(TestandtargetSegment.Kind kind) {
        ArrayList<TestandtargetSegment> toReturn = new ArrayList<TestandtargetSegment>();
        for (TestandtargetSegment segment : this.segments) {
            if (segment.getKind() != kind) continue;
            toReturn.add(segment);
        }
        return toReturn;
    }

    public List<TestandtargetOffer> getOffers() {
        return this.offers;
    }

    public Integer getPercentageConstraint() {
        return this.visitorPercentage;
    }

    public long getExperienceLocalId() {
        return this.experienceLocalId;
    }

    public void setExperienceLocalId(long id) {
        this.experienceLocalId = id;
    }

    public void setInternalName(String internalName) {
        this.internalName = internalName;
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String toString() {
        return this.getClass().getSimpleName() + " : " + this.getInternalName();
    }
}