9846d27754420826f5d340537b4cee23e10a297a
[vid.git] / vid-app-common / src / main / java / org / onap / vid / job / JobType.java
1 package org.onap.vid.job;
2
3 import org.onap.vid.job.command.*;
4
5 import java.util.Map;
6 import java.util.stream.Collectors;
7 import java.util.stream.Stream;
8
9 public enum JobType {
10
11     HttpCall(HttpCallCommand.class),
12     AggregateState(AggregateStateCommand.class),
13     ServiceInstantiation(ServiceInstantiationCommand.class),
14     InProgressStatus(InProgressStatusCommand.class),
15     NoOp(NoOpCommand.class);
16
17     private static final Map<Class, JobType> REVERSE_MAP = Stream.of(values()).collect(Collectors.toMap(t -> t.getCommandClass(), t -> t));
18
19     private final Class commandClass;
20
21     <T extends JobCommand> JobType(Class<T> commandClass) {
22         this.commandClass = commandClass;
23     }
24
25     public Class getCommandClass() {
26         return commandClass;
27     }
28     static JobType jobTypeOf(Class commandClass) {
29         return REVERSE_MAP.get(commandClass);
30     }
31 }