package io.vertx.ext.web.common.template;
import io.vertx.ext.web.common.WebEnvironment;
import io.vertx.ext.web.common.template.impl.ConcurrentLRUCache;
import java.util.Objects;
public abstract class CachingTemplateEngine<T> implements TemplateEngine {
private final boolean enableCache = !WebEnvironment.development();
protected final ConcurrentLRUCache<String, T> cache;
@Deprecated
protected String extension;
@Deprecated
protected CachingTemplateEngine(String ext, int maxCacheSize) {
this(maxCacheSize);
Objects.requireNonNull(ext);
doSetExtension(ext);
}
protected CachingTemplateEngine(int maxCacheSize) {
if (maxCacheSize < 1) {
throw new IllegalArgumentException("maxCacheSize must be >= 1");
}
this.cache = new ConcurrentLRUCache<>(maxCacheSize);
}
@Override
public boolean isCachingEnabled() {
return enableCache;
}
@Deprecated
protected String adjustLocation(String location) {
if (extension != null) {
if (!location.endsWith(extension)) {
location += extension;
}
}
return location;
}
@Deprecated
protected void doSetExtension(String ext) {
this.extension = ext.charAt(0) == '.' ? ext : "." + ext;
}
}