All checks were successful
CI fuzzy controller / container-test-job (push) Successful in 1m2s
71 lines
2.6 KiB
Java
71 lines
2.6 KiB
Java
package ru.ulstu.fc.rule.service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
import ru.ulstu.fc.project.service.ProjectService;
|
|
import ru.ulstu.fc.rule.model.FuzzyTerm;
|
|
import ru.ulstu.fc.rule.model.FuzzyTermForm;
|
|
import ru.ulstu.fc.rule.repository.FuzzyTermRepository;
|
|
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
|
|
@Service
|
|
public class FuzzyTermService {
|
|
private final FuzzyTermRepository fuzzyTermRepository;
|
|
private final VariableService variableService;
|
|
private final ProjectService projectService;
|
|
|
|
public FuzzyTermService(FuzzyTermRepository fuzzyTermRepository,
|
|
VariableService variableService,
|
|
ProjectService projectService) {
|
|
this.fuzzyTermRepository = fuzzyTermRepository;
|
|
this.variableService = variableService;
|
|
this.projectService = projectService;
|
|
}
|
|
|
|
public FuzzyTerm getById(Integer id) {
|
|
FuzzyTerm fuzzyTerm = fuzzyTermRepository
|
|
.findById(id)
|
|
.orElseThrow(() -> new RuntimeException("Term not found by id"));
|
|
checkIsCurrentUserFuzzyTermWithThrow(fuzzyTerm);
|
|
return fuzzyTerm;
|
|
}
|
|
|
|
public FuzzyTerm save(FuzzyTermForm fuzzyTermForm) {
|
|
variableService.getById(fuzzyTermForm.getVariableId());
|
|
FuzzyTerm term;
|
|
if (fuzzyTermForm.getId() == null || fuzzyTermForm.getId() == 0) {
|
|
term = new FuzzyTerm();
|
|
} else {
|
|
term = getById(fuzzyTermForm.getId());
|
|
}
|
|
term.setDescription(fuzzyTermForm.getDescription().replaceAll(" ", ""));
|
|
term.setCrispValue(fuzzyTermForm.getCrispValue());
|
|
FuzzyTerm ft = fuzzyTermRepository.save(term);
|
|
if (fuzzyTermForm.getId() == null || fuzzyTermForm.getId() == 0) {
|
|
variableService.addFuzzyTerm(fuzzyTermForm.getVariableId(), ft);
|
|
}
|
|
return ft;
|
|
}
|
|
|
|
public void delete(FuzzyTermForm fuzzyTermForm) {
|
|
fuzzyTermRepository.delete(getById(fuzzyTermForm.getId()));
|
|
}
|
|
|
|
public List<FuzzyTerm> getByVariableId(Integer variableId) {
|
|
if (variableId == null || variableId == 0) {
|
|
return Collections.emptyList();
|
|
}
|
|
return variableService.getById(variableId).getFuzzyTerms();
|
|
}
|
|
|
|
public List<FuzzyTerm> getAll(Integer variableId) {
|
|
variableService.getById(variableId);
|
|
return getByVariableId(variableId);
|
|
}
|
|
|
|
public void checkIsCurrentUserFuzzyTermWithThrow(FuzzyTerm fuzzyTerm) {
|
|
projectService.checkIsCurrentUserProjectWithThrow(fuzzyTermRepository.findByFuzzyTerm(fuzzyTerm).getProject());
|
|
}
|
|
}
|