Class Experiment

java.lang.Object
io.rtr.alchemy.models.Experiment
All Implemented Interfaces:
Named

public class Experiment extends Object implements Named
Represents a collection of user experiences being tested
  • Constructor Details

  • Method Details

    • copyOf

      public static Experiment copyOf(Experiment experiment) throws javax.validation.ValidationException
      Throws:
      javax.validation.ValidationException
    • getName

      public String getName()
      Specified by:
      getName in interface Named
    • getDescription

      public String getDescription()
    • setDescription

      public Experiment setDescription(String description)
    • getFilter

      public FilterExpression getFilter()
    • setFilter

      public Experiment setFilter(FilterExpression filter)
    • getHashAttributes

      public Set<String> getHashAttributes()
    • setHashAttributes

      public Experiment setHashAttributes(Set<String> hashAttributes)
    • setHashAttributes

      public Experiment setHashAttributes(String... hashAttributes)
    • getSeed

      public int getSeed()
    • setSeed

      public Experiment setSeed(int seed)
      Sets the seed used to compute hashes from identities. WARNING: Changing this value will change what users are assigned to what treatments
    • isActive

      public boolean isActive()
    • getCreated

      public org.joda.time.DateTime getCreated()
    • getModified

      public org.joda.time.DateTime getModified()
    • getActivated

      public org.joda.time.DateTime getActivated()
    • getDeactivated

      public org.joda.time.DateTime getDeactivated()
    • getAllocations

      public List<Allocation> getAllocations()
      Gets all allocations defined on this experiment
    • getTreatments

      public List<Treatment> getTreatments()
      Gets all treatments defined on this experiment
    • getTreatment

      public Treatment getTreatment(String treatmentName)
      Get a treatment with the given name
    • getOverrides

      public List<TreatmentOverride> getOverrides()
      Gets all overrides defined on this experiment
    • getOverride

      public TreatmentOverride getOverride(String overrideName)
      Gets the assigned override for a given name
      Parameters:
      overrideName - The name
    • activate

      public Experiment activate()
      Activates the experiments, enabling all treatments
    • deactivate

      public Experiment deactivate()
      Deactivates the experiment, disabling all treatments
    • addTreatment

      public Experiment addTreatment(String name) throws javax.validation.ValidationException
      Adds a treatment
      Parameters:
      name - The name
      Throws:
      javax.validation.ValidationException
    • addTreatment

      public Experiment addTreatment(String name, String description) throws javax.validation.ValidationException
      Adds a treatment
      Parameters:
      name - The name
      description - The description
      Throws:
      javax.validation.ValidationException
    • clearTreatments

      public Experiment clearTreatments()
      Removes all treatments
    • clearOverrides

      public Experiment clearOverrides()
      Removes all overrides
    • addOverride

      public Experiment addOverride(String overrideName, String treatmentName, String filter) throws javax.validation.ValidationException
      Add a treatment override for an identity
      Parameters:
      overrideName - The name of the override
      treatmentName - The treatment an identity should receive
      filter - A filter expression that describes which attributes this override should apply for
      Throws:
      javax.validation.ValidationException
    • removeOverride

      public Experiment removeOverride(String overrideName)
      Remove an override
      Parameters:
      overrideName - The name of the override to remove
    • removeOverrides

      public Experiment removeOverrides(String treatmentName)
      Removes all overrides for a given treatment
      Parameters:
      treatmentName - The treatment to remove overrides for
    • removeTreatment

      public Experiment removeTreatment(String name)
      Removes a treatment
      Parameters:
      name - The treatment
    • save

      public Experiment save()
      Saves the experiment and all changes made to it
    • delete

      public void delete()
      Deletes the experiment and all things associated with it
    • allocate

      public Experiment allocate(String treatmentName, int size)
      Allocates bins to a treatment
      Parameters:
      treatmentName - The treatment
      size - The number of bins
    • deallocate

      public Experiment deallocate(String treatmentName, int size)
      De-allocates bins from a treatment
      Parameters:
      treatmentName - The treatment
      size - The number of bins
    • reallocate

      public Experiment reallocate(String sourceTreatmentName, String destinationTreatmentName, int size)
      Reallocates bins from one treatment to another
      Parameters:
      sourceTreatmentName - The source treatment
      destinationTreatmentName - The destination treatment
      size - The number of bins
    • deallocateAll

      public Experiment deallocateAll()
      Removes all allocations
    • getTreatment

      public Treatment getTreatment(Identity identity, AttributesMap attributes)
      Returns treatment for an identity
      Parameters:
      identity - The identity
      Returns:
      the treatment assigned to given identity
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object