package fr.plil.sio.persistence.jdbc; import fr.plil.sio.persistence.api.Right; import fr.plil.sio.persistence.api.RightService; import org.springframework.stereotype.Service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @Service public class RightServiceJdbc implements RightService { @Autowired private RightRepository rightRepository; @Override public Right create(String name) { if (name == null) { throw new IllegalArgumentException("name cannot be null"); } Right right = new Right(); right.setName(name); rightRepository.save(right); return right; } @Override public Right create(String name, Right parent) { if(name == null) throw new IllegalArgumentException("Name cannot be null"); if(parent == null) throw new IllegalArgumentException("Parent cannot be null"); if(rightRepository.findOne(parent.getId()) == null){ throw new IllegalArgumentException("Parent doesn't exist in table"); } Right right = new Right(); right.setName(name); right.setParent(parent); rightRepository.save(right); return right; } @Override public boolean delete(Right right) { if(right == null) throw new IllegalArgumentException("Right cannot be null"); List r = rightRepository.findByName(right.getName()); if(!r.isEmpty()){ rightRepository.delete(right.getId()); return true; } return false; } @Override public List findByName(String name) { if(name == null) throw new IllegalArgumentException("Name cannot be null"); return rightRepository.findByName(name); } @Override public Right findOne(Long id) { if(id == null) throw new IllegalArgumentException("Id cannot be null"); return rightRepository.findOne(id); } }