TrainingPlanServiceImpl.java
package it.unisa.c03.myPersonalTrainer.trainingplan.service;
import it.unisa.c03.myPersonalTrainer.trainingplan.bean.TrainingPlan;
import it.unisa.c03.myPersonalTrainer.trainingplan.dao.TrainingPlanDAO;
import it.unisa.c03.myPersonalTrainer.trainingplan.dao.TrainingPlanDAOImpl;
import java.io.IOException;
import java.util.List;
import java.util.concurrent.ExecutionException;
/**
* Implementation of TrainingPlanService.
*/
public class TrainingPlanServiceImpl implements TrainingPlanService {
/**
* This method asks to DAO TrainingPlans.
*
* @param email of the customer
* @return List of TrainingPlans
* @throws InterruptedException
* @throws ExecutionException
* @throws IOException
*/
public List<TrainingPlan> getTrainingPlans(String email)
throws InterruptedException, ExecutionException, IOException {
TrainingPlanDAO trainingPlanList = new TrainingPlanDAOImpl();
return (List<TrainingPlan>)
trainingPlanList.getTrainingPlansByEmail(email);
}
/**
* this is TrainingPlanDAO.
*/
private TrainingPlanDAO trainingPlanDAO;
public TrainingPlanServiceImpl() {
}
/**
* .
*
* @param trainingPlanDAO
*/
public TrainingPlanServiceImpl(TrainingPlanDAO trainingPlanDAO) {
this.trainingPlanDAO = trainingPlanDAO;
}
/**
* This method checks TrainingPlan entries.
*
* @param exercise
* @param repetitions
* @param series
* @param recoveryTime
* @return
* @throws IllegalArgumentException
*/
@Override
public boolean checkExercise(String exercise, String repetitions,
String series, String recoveryTime)
throws IllegalArgumentException {
boolean result = false;
final int MAX_LENGHT_EX = 25;
final int MAX_LENGHT = 3;
final int MIN_LENGHT_EX = 4;
final int MIN_LENGHT = 1;
if (series == null || repetitions == null
|| exercise == null || recoveryTime == null) {
throw new IllegalArgumentException(
"valori mancanti");
}
if (!exercise.matches("[a-zA-Z\\s]+")) {
throw new IllegalArgumentException("invalid exercise");
} else if (exercise.length() < MIN_LENGHT_EX
|| exercise.length() > MAX_LENGHT_EX) {
throw new IllegalArgumentException("invalid exercise length");
} else if (series.length() < MIN_LENGHT
|| series.length() > MAX_LENGHT) {
throw new IllegalArgumentException("invalid series length");
} else if (!series.matches("^[0-9]+$")) {
throw new IllegalArgumentException("invalid series format");
} else if (repetitions.length() < MIN_LENGHT
|| repetitions.length() > MAX_LENGHT) {
throw new IllegalArgumentException("invalid repetitions length");
} else if (!repetitions.matches("^[0-9]+$")) {
throw new IllegalArgumentException("invalid repetitions format");
} else if (recoveryTime.length() < MIN_LENGHT
|| recoveryTime.length() > MAX_LENGHT) {
throw new IllegalArgumentException("invalid recoveryTime length");
} else if (!recoveryTime.matches("^[0-9]+$")) {
throw new IllegalArgumentException("invalid recoveryTime format");
} else {
result = true;
}
return result;
}
/**
* This method calls TrainingPlanDAO.
* @param trainingPlan
* @return boolean
* @throws IOException
*/
@Override
public boolean createTrainingPlan(TrainingPlan trainingPlan)
throws IOException {
return trainingPlanDAO.insertTrainingPlan(trainingPlan);
}
}