use of eu.esdihumboldt.hale.common.core.service.ServiceProvider in project hale by halestudio.
the class NetworkExpansionExplanation method getExplanation.
@Override
protected String getExplanation(Cell cell, boolean html, ServiceProvider services, Locale locale) {
Entity target = CellUtil.getFirstEntity(cell.getTarget());
String expression = CellUtil.getFirstParameter(cell, PARAMETER_BUFFER_WIDTH).as(String.class);
List<? extends Entity> variables = cell.getSource().get(ENTITY_VARIABLE);
List<? extends Entity> geom = cell.getSource().get(null);
if (target != null && expression != null) {
if (html)
expression = "<pre>" + expression + "</pre>";
String explanation = MessageFormat.format(getMessage("main", locale), formatEntity(geom.get(0), html, true, locale), formatEntity(target, html, true, locale), expression);
if (html)
explanation = explanation.replaceAll("\n", "<br />");
if (html) {
Map<String, String> varToProperty = variables.stream().collect(Collectors.toMap(entity -> {
return getEntityNameWithoutCondition(entity);
}, entity -> {
return formatEntity(entity, true, false, locale);
}));
explanation += buildReplacementTable(varToProperty, locale);
}
return explanation;
}
return null;
}
use of eu.esdihumboldt.hale.common.core.service.ServiceProvider in project hale by halestudio.
the class ReprojectGeometryTest method transformData.
@Override
protected List<Instance> transformData(TransformationExample example) throws Exception {
ConceptualSchemaTransformer transformer = new ConceptualSchemaTransformer();
DefaultInstanceSink sink = new DefaultInstanceSink();
final Map<Class<?>, Object> customServices = new HashMap<>();
customServices.put(FunctionService.class, new AlignmentFunctionService(example.getAlignment()));
customServices.put(TransformationFunctionService.class, new AlignmentTransformationFunctionService(example.getAlignment()));
final ServiceProvider serviceProvider = new ServiceProvider() {
private final ServiceProvider projectScope = new ServiceManager(ServiceManager.SCOPE_PROJECT);
@SuppressWarnings("unchecked")
@Override
public <T> T getService(Class<T> serviceInterface) {
if (customServices.containsKey(serviceInterface)) {
return (T) customServices.get(serviceInterface);
}
// FIXME global scope not supported yet
return projectScope.getService(serviceInterface);
}
};
transformer.transform(example.getAlignment(), example.getSourceInstances(), sink, serviceProvider, new NullProgressIndicator());
return sink.getInstances();
}
use of eu.esdihumboldt.hale.common.core.service.ServiceProvider in project hale by halestudio.
the class MathematicalExpressionExplanation method getExplanation.
@Override
protected String getExplanation(Cell cell, boolean html, ServiceProvider services, Locale locale) {
Entity target = CellUtil.getFirstEntity(cell.getTarget());
String expression = CellUtil.getFirstParameter(cell, MathematicalExpression.PARAMETER_EXPRESSION).as(String.class);
List<? extends Entity> sources = cell.getSource().get(MathematicalExpression.ENTITY_VARIABLE);
if (target != null && expression != null) {
if (html)
expression = "<pre>" + expression + "</pre>";
String explanation = MessageFormat.format(getMessage("main", locale), formatEntity(target, html, true, locale), expression);
if (html)
explanation = explanation.replaceAll("\n", "<br />");
if (html) {
Map<String, String> varToProperty = sources.stream().collect(Collectors.toMap(entity -> {
return getEntityNameWithoutCondition(entity);
}, entity -> {
return formatEntity(entity, true, false, locale);
}));
explanation += buildReplacementTable(varToProperty, locale);
}
return explanation;
}
return null;
}
use of eu.esdihumboldt.hale.common.core.service.ServiceProvider in project hale by halestudio.
the class ConceptualSchemaTransformerTest method transformData.
@Override
protected List<Instance> transformData(TransformationExample example) throws Exception {
ConceptualSchemaTransformer transformer = new ConceptualSchemaTransformer();
ThreadSafeInstanceSink<DefaultInstanceSink> sink = new ThreadSafeInstanceSink<>(new DefaultInstanceSink());
final Map<Class<?>, Object> customServices = new HashMap<>();
customServices.put(FunctionService.class, new AlignmentFunctionService(example.getAlignment()));
customServices.put(TransformationFunctionService.class, new AlignmentTransformationFunctionService(example.getAlignment()));
InstanceIndexServiceImpl indexService = new InstanceIndexServiceImpl();
customServices.put(InstanceIndexService.class, indexService);
final ServiceProvider serviceProvider = new ServiceProvider() {
private final ServiceProvider projectScope = new ServiceManager(ServiceManager.SCOPE_PROJECT);
@SuppressWarnings("unchecked")
@Override
public <T> T getService(Class<T> serviceInterface) {
if (customServices.containsKey(serviceInterface)) {
return (T) customServices.get(serviceInterface);
}
// FIXME global scope not supported yet
return projectScope.getService(serviceInterface);
}
};
indexService.addPropertyMappings(example.getAlignment().getActiveTypeCells(), serviceProvider);
InstanceCollection source = example.getSourceInstances();
try (ResourceIterator<Instance> it = source.iterator()) {
while (it.hasNext()) {
indexService.add(it.next(), source);
}
}
transformer.transform(example.getAlignment(), source, sink, serviceProvider, new NullProgressIndicator());
return sink.getDecoratee().getInstances();
}
use of eu.esdihumboldt.hale.common.core.service.ServiceProvider in project hale by halestudio.
the class FormattedStringExplanation method getExplanation.
@Override
protected String getExplanation(Cell cell, boolean html, ServiceProvider services, Locale locale) {
Entity target = CellUtil.getFirstEntity(cell.getTarget());
String pattern = CellUtil.getFirstParameter(cell, PARAMETER_PATTERN).as(String.class);
List<? extends Entity> sources = null;
if (cell.getSource() != null) {
sources = cell.getSource().get(ENTITY_VARIABLE);
}
if (target != null && pattern != null) {
if (html)
pattern = "<pre>" + pattern + "</pre>";
String explanation = MessageFormat.format(getMessage("main", locale), formatEntity(target, html, true, locale), pattern);
if (html)
explanation = explanation.replaceAll("\n", "<br />");
if (sources != null && html) {
Map<String, String> varToProperty = sources.stream().collect(Collectors.toMap(entity -> {
return '{' + getEntityNameWithoutCondition(entity) + '}';
}, entity -> {
return formatEntity(entity, true, false, locale);
}));
explanation += buildReplacementTable(varToProperty, locale);
}
return explanation;
}
return null;
}
Aggregations