package com.netflix.priam.agent.process; import javax.inject.Provider; /** * A class based provider */ public class SimpleProvider<T> implements Provider<T> { private final Class<T> clazz; /** * Return a provider for the given class * * @param clazz class * @return provider */ public static <T> Provider<T> of(Class<T> clazz) { return new SimpleProvider<T>(clazz); } /** * @param clazz Provider class */ public SimpleProvider(Class<T> clazz) { this.clazz = clazz; } @Override public T get() { try { return clazz.newInstance(); } catch ( InstantiationException e ) { throw new RuntimeException(e); } catch ( IllegalAccessException e ) { throw new RuntimeException(e); } } }