113 lines
2.4 KiB
Java

package dev.dinauer.inspect.websocket;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.ws.rs.BadRequestException;
import org.jboss.logging.Logger;
import dev.dinauer.service.*;
@ApplicationScoped
public class ServiceFactory
{
@Inject
Logger LOG;
@Inject
StatefulSetService statefulSetService;
@Inject
DeploymentService deploymentService;
@Inject
PodService podService;
@Inject
CustomResourceDefinitionService customResourceDefinitionService;
@Inject
IngressService ingressService;
@Inject
ServiceService serviceService;
@Inject
NodeService nodeService;
@Inject
SecretService secretService;
@Inject
ConfigMapService configMapService;
@Inject
PvcService pvcService;
@Inject
PvService pvService;
@Inject
NamespaceService namespaceService;
public ResourceService<?> getService(ResourceType resourceType)
{
switch (resourceType)
{
case ResourceType.STATEFUL_SET:
{
return statefulSetService;
}
case ResourceType.DEPLOYMENT:
{
return deploymentService;
}
case ResourceType.SERVICE:
{
return serviceService;
}
case ResourceType.INGRESS:
{
return ingressService;
}
case ResourceType.POD:
{
return podService;
}
case ResourceType.CUSTOM_RESOURCE_DEFINITION:
{
return customResourceDefinitionService;
}
case ResourceType.NODE:
{
return nodeService;
}
case ResourceType.SECRET:
{
return secretService;
}
case ResourceType.CONFIG_MAP:
{
return configMapService;
}
case ResourceType.PVC:
{
return pvcService;
}
case ResourceType.PV:
{
return pvService;
}
case ResourceType.NAMESPACE:
{
return namespaceService;
}
default:
{
LOG.errorf("Invalid resource type %s.", resourceType);
throw new BadRequestException();
}
}
}
}