package io.dropwizard.views.mustache;
import com.github.mustachejava.MustacheResolver;
import io.dropwizard.views.View;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.nio.charset.StandardCharsets;
/**
* {@link MustacheResolver} implementation that resolves mustache
* files from the classpath relatively from a provided class.
*/
class PerClassMustacheResolver implements MustacheResolver {
private final Class<? extends View> klass;
PerClassMustacheResolver(Class<? extends View> klass) {
this.klass = klass;
}
@Override
public Reader getReader(String resourceName) {
final InputStream is = klass.getResourceAsStream(resourceName);
if (is == null) {
return null;
}
return new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8));
}
}