pf-sdn/src/main/java/ru/kirillius/pf/sdn/service/AutonomousSystemCacheServic...

38 lines
1.2 KiB
Java

package ru.kirillius.pf.sdn.service;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import org.springframework.stereotype.Service;
import ru.kirillius.pf.sdn.api.Networking.IPv4Subnet;
import ru.kirillius.pf.sdn.entity.AutonomousSystemCacheEntry;
import ru.kirillius.pf.sdn.repository.AutonomousSystemCacheRepository;
import java.util.List;
import java.util.Optional;
@Setter
@RequiredArgsConstructor
@Service
public class AutonomousSystemCacheService {
private final AutonomousSystemCacheRepository repository;
public void store(int number, List<IPv4Subnet> subnets) {
synchronized (repository) {
if (repository.existsByNumber(number)) {
repository.findByNumber(number).ifPresent(entry -> {
entry.setPrefixes(subnets);
repository.save(entry);
});
} else {
repository.save(AutonomousSystemCacheEntry.builder().number(number).prefixes(subnets).build());
}
}
}
public Optional<AutonomousSystemCacheEntry> load(int number) {
synchronized (repository) {
return repository.findByNumber(number);
}
}
}