package no.niths.services.signaling;
import no.niths.common.helpers.ValidationHelper;
import no.niths.domain.signaling.AccessField;
import no.niths.domain.signaling.AccessPoint;
import no.niths.infrastructure.interfaces.GenericRepository;
import no.niths.infrastructure.signaling.interfaces.AccessFieldRepository;
import no.niths.infrastructure.signaling.interfaces.AccessPointRepository;
import no.niths.services.AbstractGenericService;
import no.niths.services.signaling.interfaces.AccessFieldService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* Service Class for AccessField
*
* <p>
* Inherits the basic CRUD actions and has methods
* for addAccessPoint
* and removeAccessPoint
* </p>
*/
@Service
public class AccessFieldServiceImpl extends AbstractGenericService<AccessField>
implements AccessFieldService {
@Autowired
private AccessFieldRepository repo;
@Autowired
private AccessPointRepository accessPointRepo;
@Override
public GenericRepository<AccessField> getRepository() {
return repo;
}
/**
* {@inheritDoc}
*/
@Override
public void addAccessPoint(long afId, long apId) {
AccessField accessField = validate(repo.getById(afId),
AccessField.class);
checkIfObjectExists(accessField.getAccessPoint(), apId,
AccessPoint.class);
AccessPoint accessPoint = accessPointRepo.getById(apId);
ValidationHelper.isObjectNull(accessPoint, AccessPoint.class);
accessField.setAccessPoint(accessPoint);
}
/**
* {@inheritDoc}
*/
@Override
public void removeAccessPoint(long afId) {
AccessField accessField = validate(repo.getById(afId),
AccessField.class);
boolean isRemoved = false;
if (accessField.getAccessPoint() != null) {
accessField.setAccessPoint(null);
isRemoved = true;
}
checkIfIsRemoved(isRemoved, AccessPoint.class);
}
}