Jagger
 All Classes Namespaces Files Functions Variables Enumerator Groups Pages
DefaultResponseValidatorProvider.java
Go to the documentation of this file.
1 package com.griddynamics.jagger.engine.e1.collector;
2 
3 import com.griddynamics.jagger.coordinator.NodeContext;
4 
5 import java.lang.reflect.Constructor;
6 import java.lang.reflect.InvocationTargetException;
7 
17 
18  private final Class<? extends ResponseValidator<?, ?, ?>> clazz;
19 
20  public DefaultResponseValidatorProvider(Class<? extends ResponseValidator<?, ?, ?>> clazz) {
21  this.clazz = clazz;
22  }
23 
24  public static DefaultResponseValidatorProvider of(Class<? extends ResponseValidator<?, ?, ?>> clazz) {
25  return new DefaultResponseValidatorProvider(clazz);
26  }
27 
28  @Override
29  public ResponseValidator<?, ?, ?> provide(String sessionId, String taskId, NodeContext kernelContext) {
30  try {
31  Constructor<? extends ResponseValidator> constructor = clazz.getConstructor(String.class, String.class, NodeContext.class);
32  return constructor.newInstance(taskId, sessionId, kernelContext);
33  } catch (NoSuchMethodException e) {
34  throw new RuntimeException(e);
35  } catch (InvocationTargetException e) {
36  throw new RuntimeException(e);
37  } catch (InstantiationException e) {
38  throw new RuntimeException(e);
39  } catch (IllegalAccessException e) {
40  throw new RuntimeException(e);
41  }
42  }
43 }