package fr.openwide.core.jpa.more.rendering.service;
import java.util.Locale;
import java.util.concurrent.Callable;
import fr.openwide.core.commons.util.context.ExecutionContexts;
import fr.openwide.core.commons.util.context.IExecutionContext;
import fr.openwide.core.commons.util.fieldpath.FieldPath;
import fr.openwide.core.commons.util.functional.Joiners;
import fr.openwide.core.commons.util.rendering.IRenderer;
/**
* Mock implementation, only used to fill the dependency.
*/
public class EmptyRendererServiceImpl implements IRendererService {
protected enum DefaultRenderer implements IRenderer<Object> {
INSTANCE;
@Override
public String render(Object value, Locale locale) {
return String.valueOf(value);
}
}
@Override
public IExecutionContext context() {
return ExecutionContexts.noOp();
}
@Override
public IExecutionContext context(Locale locale) {
return ExecutionContexts.noOp();
}
@Override
public <T> T runWithContext(Callable<T> callable) throws Exception {
return callable.call();
}
@Override
public <T> IRenderer<? super T> findRenderer(Class<T> valueType) {
return DefaultRenderer.INSTANCE;
}
@Override
public <T> IRenderer<? super T> findRenderer(Class<?> rootType, Class<T> valueType) {
return DefaultRenderer.INSTANCE;
}
@Override
public <T> IRenderer<? super T> findRenderer(Class<?> rootType, FieldPath path, Class<T> valueType) {
return DefaultRenderer.INSTANCE;
}
@Override
public String localize(String resourceKey) {
return resourceKey;
}
@Override
public String localize(String resourceKey, Object namedParameters, Object... positionalParameters) {
return resourceKey + "(" + namedParameters + ", [" + Joiners.onComma().join(positionalParameters) + "])";
}
@Override
public String localize(Enum<?> enumValue, String prefix, String suffix) {
return Joiners.onDot().join(prefix, enumValue, suffix);
}
@Override
public <T> String localize(Class<T> clazz, T value) {
return clazz.getName() + " / " + value;
}
@Override
public String localize(String resourceKey, Locale locale) {
return localize(resourceKey);
}
@Override
public String localize(String resourceKey, Locale locale, Object namedParameters, Object... positionalParameters) {
return localize(resourceKey, namedParameters, positionalParameters);
}
@Override
public String localize(Enum<?> enumValue, String prefix, String suffix, Locale locale) {
return localize(enumValue, prefix, suffix);
}
@Override
public <T> String localize(Class<T> clazz, T value, Locale locale) {
return localize(clazz, value);
}
}