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