package com.dbg.cloud.acheron.routing.store;
import com.dbg.cloud.acheron.routing.Route;
import lombok.NonNull;
import java.util.*;
public interface RouteStore {
List<Route> findAll();
Optional<Route> findById(@NonNull String routeId);
Set<String> findHttpMethodsByRouteId(@NonNull String routeId);
Route add(@NonNull Route route);
void deleteById(@NonNull String routeId);
class NoRouteStore implements RouteStore {
@Override
public List<Route> findAll() {
return Collections.emptyList();
}
@Override
public Optional<Route> findById(@NonNull String routeId) {
return Optional.empty();
}
@Override
public Set<String> findHttpMethodsByRouteId(@NonNull String routeId) {
// all
return new HashSet<>(Collections.singletonList("*"));
}
@Override
public Route add(@NonNull Route route) {
return route;
}
@Override
public void deleteById(@NonNull String routeId) {
// nothing
}
}
}