use of org.kie.workbench.common.dmn.api.definition.model.LiteralExpressionPMMLDocumentModel in project kie-wb-common by kiegroup.
the class PMMLFunctionEditorDefinitionTest method testModelEnrichment.
@Test
public void testModelEnrichment() {
final Optional<Context> oModel = definition.getModelClass();
definition.enrich(Optional.empty(), hasExpression, oModel);
final Context model = oModel.get();
assertEquals(2, model.getContextEntry().size());
assertEquals(LiteralExpressionPMMLDocument.VARIABLE_DOCUMENT, model.getContextEntry().get(0).getVariable().getName().getValue());
assertTrue(model.getContextEntry().get(0).getExpression() instanceof LiteralExpressionPMMLDocument);
assertEquals(model, model.getContextEntry().get(0).getParent());
assertEquals(LiteralExpressionPMMLDocumentModel.VARIABLE_MODEL, model.getContextEntry().get(1).getVariable().getName().getValue());
assertTrue(model.getContextEntry().get(1).getExpression() instanceof LiteralExpressionPMMLDocumentModel);
assertEquals(model, model.getContextEntry().get(1).getParent());
}
use of org.kie.workbench.common.dmn.api.definition.model.LiteralExpressionPMMLDocumentModel in project kie-wb-common by kiegroup.
the class PMMLIncludedModelHandlerTest method assertPMMLContextDefinition.
private void assertPMMLContextDefinition(final FunctionDefinition function, final String expectedDocumentValue, final String expectedModelValue) {
assertThat(function.getExpression()).isInstanceOf(Context.class);
final Context context = (Context) function.getExpression();
assertThat(context.getContextEntry().get(0).getExpression()).isInstanceOf(LiteralExpressionPMMLDocument.class);
final LiteralExpressionPMMLDocument functionDocument = (LiteralExpressionPMMLDocument) context.getContextEntry().get(0).getExpression();
assertThat(functionDocument.getText().getValue()).isEqualTo(wrap(expectedDocumentValue));
assertThat(context.getContextEntry().get(1).getExpression()).isInstanceOf(LiteralExpressionPMMLDocumentModel.class);
final LiteralExpressionPMMLDocumentModel functionDocumentModel = (LiteralExpressionPMMLDocumentModel) context.getContextEntry().get(1).getExpression();
assertThat(functionDocumentModel.getText().getValue()).isEqualTo(wrap(expectedModelValue));
}
use of org.kie.workbench.common.dmn.api.definition.model.LiteralExpressionPMMLDocumentModel in project kie-wb-common by kiegroup.
the class FunctionDefinitionPropertyConverter method convertContextEntryExpression.
private static void convertContextEntryExpression(final ContextEntry contextEntry, final BiConsumer<String, HasComponentWidths> hasComponentWidthsConsumer) {
final Expression expression = contextEntry.getExpression();
if (expression instanceof LiteralExpression) {
final LiteralExpression le = (LiteralExpression) expression;
final String variableName = contextEntry.getVariable().getName().getValue();
if (Objects.equals(LiteralExpressionPMMLDocument.VARIABLE_DOCUMENT, variableName)) {
final LiteralExpressionPMMLDocument e = convertLiteralExpressionToPMMLDocument(le);
// Ensure ComponentWidths are updated for the converted LiteralExpression
hasComponentWidthsConsumer.accept(e.getId().getValue(), e);
contextEntry.setExpression(e);
} else if (Objects.equals(LiteralExpressionPMMLDocumentModel.VARIABLE_MODEL, variableName)) {
final LiteralExpressionPMMLDocumentModel e = convertLiteralExpressionToPMMLDocumentModel(le);
// Ensure ComponentWidths are updated for the converted LiteralExpression
hasComponentWidthsConsumer.accept(e.getId().getValue(), e);
contextEntry.setExpression(e);
}
}
}
use of org.kie.workbench.common.dmn.api.definition.model.LiteralExpressionPMMLDocumentModel in project kie-wb-common by kiegroup.
the class PMMLFunctionEditorDefinition method enrich.
@Override
public void enrich(final Optional<String> nodeUUID, final HasExpression hasExpression, final Optional<Context> expression) {
expression.ifPresent(context -> {
final List<String> variableNames = getVariableNames();
final ContextEntry contextEntryDocument = new ContextEntry();
contextEntryDocument.setVariable(createVariable(variableNames.get(0)));
contextEntryDocument.setExpression(new LiteralExpressionPMMLDocument());
context.getContextEntry().add(contextEntryDocument);
contextEntryDocument.setParent(context);
final ContextEntry contextEntryDocumentModel = new ContextEntry();
contextEntryDocumentModel.setVariable(createVariable(variableNames.get(1)));
contextEntryDocumentModel.setExpression(new LiteralExpressionPMMLDocumentModel());
context.getContextEntry().add(contextEntryDocumentModel);
contextEntryDocumentModel.setParent(context);
});
}
use of org.kie.workbench.common.dmn.api.definition.model.LiteralExpressionPMMLDocumentModel in project kie-wb-common by kiegroup.
the class LiteralExpressionPMMLDocumentModelEditorDefinition method getEditor.
@Override
public Optional<BaseExpressionGrid<? extends Expression, ? extends GridData, ? extends BaseUIModelMapper>> getEditor(final GridCellTuple parent, final Optional<String> nodeUUID, final HasExpression hasExpression, final Optional<HasName> hasName, final boolean isOnlyVisualChangeAllowed, final int nesting) {
return Optional.of(new LiteralExpressionPMMLGrid(parent, nodeUUID, hasExpression, hasName, getGridPanel(), getGridLayer(), makeGridData(() -> Optional.ofNullable((LiteralExpressionPMMLDocumentModel) hasExpression.getExpression())), definitionUtils, sessionManager, sessionCommandManager, canvasCommandFactory, editorSelectedEvent, refreshFormPropertiesEvent, domainObjectSelectionEvent, getCellEditorControls(), listSelector, translationService, isOnlyVisualChangeAllowed, nesting, headerEditor, readOnlyProvider) {
@Override
protected String getPlaceHolder() {
return translationService.getTranslation(DMNEditorConstants.LiteralExpressionPMMLDocumentModelEditorDefinition_Placeholder);
}
@Override
protected void loadValues(final Consumer<List<String>> consumer) {
final String pmmlDocumentName = getExpressionPMMLValue(LiteralExpressionPMMLDocument.VARIABLE_DOCUMENT);
consumer.accept(pmmlDocumentMetadataProvider.getPMMLDocumentModels(pmmlDocumentName));
}
@Override
public Function<GridCellValueTuple, Command> newCellHasValueCommand() {
return (gridCellValueTuple) -> {
final CompositeCommand.Builder<AbstractCanvasHandler, CanvasViolation> builder = new CompositeCommand.Builder<>();
// Command to set the PMMLDocumentModel value
builder.addCommand(new SetCellValueCommand(gridCellValueTuple, () -> uiModelMapper, gridLayer::batch));
// Command to set PMMLDocumentModel parameters
getParentFunctionGrid().ifPresent(parentFunctionGrid -> {
final String pmmlDocumentName = getExpressionPMMLValue(LiteralExpressionPMMLDocument.VARIABLE_DOCUMENT);
final String pmmlDocumentModelName = StringUtils.createUnquotedString((String) gridCellValueTuple.getValue().getValue());
final List<String> parameters = pmmlDocumentMetadataProvider.getPMMLDocumentModelParameterNames(pmmlDocumentName, pmmlDocumentModelName);
parentFunctionGrid.getExpression().get().ifPresent(function -> {
builder.addCommand(new SetParametersCommand(function, convertParametersToInformationItems(parameters), gridLayer::batch));
});
});
return builder.build();
};
}
private List<InformationItem> convertParametersToInformationItems(final List<String> parameters) {
final List<InformationItem> informationItems = new ArrayList<>();
parameters.forEach(parameter -> informationItems.add(new InformationItem(new Id(), new Description(), new Name(parameter), BuiltInType.ANY.asQName())));
return informationItems;
}
});
}
Aggregations