@Override @Timed public Assignment assignUser(Assignment assignment,Experiment experiment,Date date){
  Assignment new_assignment=null;
  if (assignUserToOld) {
    new_assignment=assignUserToOld(assignment,date);
  }
  if (assignUserToNew) {
    new_assignment=assignUserToLookUp(assignment,date);
  }
  boolean countUp=true;
  assignmentsCountExecutor.execute(new AssignmentCountEnvelope(assignmentsRepository,experimentRepository,dbRepository,experiment,assignment,countUp,eventLog,date,assignUserToExport,assignBucketCount));
  indexUserToExperiment(assignment);
  indexUserToBucket(assignment);
  indexExperimentsToUser(assignment);
  return new_assignment;
}

@ Override @ Timed public Assignment assignUser ( Assignment assignment , Experiment experiment , Date date ) { Assignment new_assignment = null ; if ( assignUserToOld ) { new_assignment = assignUserToOld ( assignment , date ) ; } if ( assignUserToNew ) { new_assignment = assignUserToLookUp ( assignment , date ) ; } boolean countUp = true ; assignmentsCountExecutor . execute ( new AssignmentCountEnvelope ( assignmentsRepository , experimentRepository , dbRepository , experiment , assignment , countUp , eventLog , date , assignUserToExport , assignBucketCount ) ) ; indexUserToExperiment ( assignment ) ; indexUserToBucket ( assignment ) ; indexExperimentsToUser ( assignment ) ; return new_assignment ; }
assigns the user to the specified bucket . note , there is no validation that the experiment is running , is not deleted , or anything else . this method should only be used for cases where a user has been pre - assigned to a bucket .
