SimpleHorseService.java 2.17 KB
Newer Older
1 2 3
package at.ac.tuwien.sepm.assignment.individual.service.impl;

import at.ac.tuwien.sepm.assignment.individual.entity.Horse;
4
import at.ac.tuwien.sepm.assignment.individual.persistence.FileDao;
5 6 7 8 9 10 11 12 13
import at.ac.tuwien.sepm.assignment.individual.persistence.HorseDao;
import at.ac.tuwien.sepm.assignment.individual.service.HorseService;
import at.ac.tuwien.sepm.assignment.individual.util.ValidationException;
import at.ac.tuwien.sepm.assignment.individual.util.Validator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service;
14
import org.springframework.web.multipart.MultipartFile;
15

16
import java.io.IOException;
17 18 19 20 21
import java.lang.invoke.MethodHandles;

@Service
public class SimpleHorseService implements HorseService {
    private static final Logger LOGGER = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
22 23
    private final HorseDao horseJdbcDao;
    private final FileDao horseFileDao;
24 25 26
    private final Validator validator;

    @Autowired
27 28 29
    public SimpleHorseService(HorseDao horseJdbcDao, FileDao horseFileDao, Validator validator) {
        this.horseJdbcDao = horseJdbcDao;
        this.horseFileDao = horseFileDao;
30 31 32 33 34 35
        this.validator = validator;
    }

    @Override
    public Horse findOneById(Long id) {
        LOGGER.trace("findOneById({})", id);
36
        return horseJdbcDao.findOneById(id);
37 38 39 40 41
    }

    @Override
    public Horse addHorse(Horse horse) throws ValidationException, DataAccessException {
        this.validator.validateNewHorse(horse);
42
        LOGGER.trace("addHorse({})", horse.toString());
43 44 45
        return horseJdbcDao.addHorse(horse);
    }

46 47 48 49 50 51 52
    @Override
    public Horse updateHorse(Horse horse) {
        this.validator.validateUpdateHorse(horse);
        LOGGER.trace("updateHorse({})", horse.toString());
        return horseJdbcDao.updateHorse(horse);
    }

53 54 55 56 57
    @Override
    public void saveImage(MultipartFile img) throws ValidationException, IOException {
        this.validator.validateHorseImage(img);
        LOGGER.trace("saveImage({})", img.getName());
        horseFileDao.save(img);
58 59
    }
}