fuzzy-controller/src/main/java/ru/ulstu/fc/rule/service/FuzzyTermService.java
Anton Romanov 962d677f93
All checks were successful
CI fuzzy controller / container-test-job (push) Successful in 1m2s
#26 -- Fix variables and term spaces
2025-03-14 15:40:41 +04:00

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());
}
}