use of org.kie.workbench.common.dmn.api.definition.model.Import in project kie-wb-common by kiegroup.
the class DefinitionsConverter method wbFromDMN.
public static Definitions wbFromDMN(final org.kie.dmn.model.api.Definitions dmn, final Map<org.kie.dmn.model.api.Import, org.kie.dmn.model.api.Definitions> importDefinitions, final Map<org.kie.dmn.model.api.Import, PMMLDocumentMetadata> pmmlDocuments) {
if (dmn == null) {
return null;
}
final Id id = new Id(dmn.getId());
final Name name = new Name(dmn.getName());
final String namespace = dmn.getNamespace();
final Description description = DescriptionPropertyConverter.wbFromDMN(dmn.getDescription());
final Definitions result = new Definitions();
result.setId(id);
result.setName(name);
result.setNamespace(new Text(namespace));
result.getNsContext().putIfAbsent(DMNModelInstrumentedBase.Namespace.DEFAULT.getPrefix(), namespace);
result.setDescription(description);
for (Entry<String, String> kv : dmn.getNsContext().entrySet()) {
String mappedURI = kv.getValue();
switch(mappedURI) {
case org.kie.dmn.model.v1_1.KieDMNModelInstrumentedBase.URI_DMN:
mappedURI = org.kie.dmn.model.v1_2.KieDMNModelInstrumentedBase.URI_DMN;
break;
case org.kie.dmn.model.v1_1.KieDMNModelInstrumentedBase.URI_FEEL:
mappedURI = org.kie.dmn.model.v1_2.KieDMNModelInstrumentedBase.URI_FEEL;
break;
case org.kie.dmn.model.v1_1.KieDMNModelInstrumentedBase.URI_KIE:
mappedURI = org.kie.dmn.model.v1_2.KieDMNModelInstrumentedBase.URI_KIE;
break;
}
if (kv.getKey().equalsIgnoreCase(DMNModelInstrumentedBase.Namespace.DEFAULT.getPrefix())) {
result.getNsContext().putIfAbsent(kv.getKey(), mappedURI);
} else {
result.getNsContext().put(kv.getKey(), mappedURI);
}
}
for (org.kie.dmn.model.api.ItemDefinition itemDef : dmn.getItemDefinition()) {
final ItemDefinition itemDefConverted = ItemDefinitionPropertyConverter.wbFromDMN(itemDef);
if (itemDefConverted != null) {
itemDefConverted.setParent(result);
}
result.getItemDefinition().add(itemDefConverted);
}
for (org.kie.dmn.model.api.Import i : dmn.getImport()) {
final org.kie.dmn.model.api.Definitions definitions = importDefinitions.get(i);
final PMMLDocumentMetadata pmmlDocument = pmmlDocuments.get(i);
final Import importConverted = ImportConverter.wbFromDMN(i, definitions, pmmlDocument);
if (importConverted != null) {
importConverted.setParent(result);
}
result.getImport().add(importConverted);
}
return result;
}
use of org.kie.workbench.common.dmn.api.definition.model.Import in project kie-wb-common by kiegroup.
the class ImportConverter method createWBImport.
private static Import createWBImport(final org.kie.dmn.model.api.Import dmn, final Definitions definitions, final PMMLDocumentMetadata pmmlDocument) {
final LocationURI locationURI = new LocationURI(dmn.getLocationURI());
if (Objects.equals(DMNImportTypes.DMN, determineImportType(dmn.getImportType()))) {
final ImportDMN result = new ImportDMN(dmn.getNamespace(), locationURI, dmn.getImportType());
result.setDrgElementsCount(countDefinitionElement(definitions, () -> d -> d.getDrgElement().size()));
result.setItemDefinitionsCount(countDefinitionElement(definitions, () -> d -> d.getItemDefinition().size()));
return result;
} else if (Objects.equals(DMNImportTypes.PMML, determineImportType(dmn.getImportType()))) {
final ImportPMML result = new ImportPMML(dmn.getNamespace(), locationURI, dmn.getImportType());
result.setModelCount(pmmlDocument.getModels().size());
return result;
} else {
return new Import(dmn.getNamespace(), locationURI, dmn.getImportType());
}
}
use of org.kie.workbench.common.dmn.api.definition.model.Import in project kie-wb-common by kiegroup.
the class PMMLDocumentMetadataProviderTest method testLoadPMMLIncludedDocumentsPMMLIncludedModels.
@Test
@SuppressWarnings("unchecked")
public void testLoadPMMLIncludedDocumentsPMMLIncludedModels() {
final Import dmn = new ImportDMN("dmn", new LocationURI("dmn-location"), DMNImportTypes.DMN.getDefaultNamespace());
final Import pmml = new ImportPMML("pmml", new LocationURI("pmml-location"), DMNImportTypes.PMML.getDefaultNamespace());
dmn.getName().setValue("dmn");
pmml.getName().setValue("pmml");
definitions.getImport().add(dmn);
definitions.getImport().add(pmml);
provider.loadPMMLIncludedDocuments();
verify(clientServicesProxy).loadPMMLDocumentsFromImports(any(Path.class), pmmlIncludedModelsArgumentCaptor.capture(), any(ServiceCallback.class));
final List<PMMLIncludedModel> actualIncludedModels = pmmlIncludedModelsArgumentCaptor.getValue();
assertThat(actualIncludedModels).hasSize(1);
final PMMLIncludedModel pmmlIncludedModel = actualIncludedModels.get(0);
assertThat(pmmlIncludedModel.getModelName()).isEqualTo("pmml");
assertThat(pmmlIncludedModel.getPath()).isEqualTo("pmml-location");
assertThat(pmmlIncludedModel.getImportType()).isEqualTo(DMNImportTypes.PMML.getDefaultNamespace());
}
use of org.kie.workbench.common.dmn.api.definition.model.Import in project kie-wb-common by kiegroup.
the class ImportFactoryTest method testMakeDMNImport.
@Test
public void testMakeDMNImport() {
final DMNIncludedModelActiveRecord record = new DMNIncludedModelActiveRecord(null);
final String expectedImportType = DMNImportTypes.DMN.getDefaultNamespace();
final String nameValue = "name";
final String path = "/src/main/kie/dmn";
final Name expectedName = new Name(nameValue);
final LocationURI expectedLocationURI = new LocationURI(path);
final String expectedNamespace = "://namespace";
final int expectedDrgElementsCount = 2;
final int expectedItemDefinitionsCount = 3;
record.setName(nameValue);
record.setPath(path);
record.setNamespace(expectedNamespace);
record.setImportType(DMNImportTypes.DMN.getDefaultNamespace());
record.setDrgElementsCount(expectedDrgElementsCount);
record.setDataTypesCount(expectedItemDefinitionsCount);
final Import actualImport = factory.makeImport(record);
assertTrue(actualImport instanceof ImportDMN);
final ImportDMN dmnImport = (ImportDMN) actualImport;
assertEquals(expectedImportType, actualImport.getImportType());
assertEquals(expectedName, actualImport.getName());
assertEquals(expectedLocationURI, actualImport.getLocationURI());
assertEquals(expectedNamespace, actualImport.getNamespace());
assertEquals(expectedImportType, actualImport.getImportType());
assertEquals(expectedDrgElementsCount, dmnImport.getDrgElementsCount());
assertEquals(expectedItemDefinitionsCount, dmnImport.getItemDefinitionsCount());
}
use of org.kie.workbench.common.dmn.api.definition.model.Import in project kie-wb-common by kiegroup.
the class ImportFactoryTest method testName.
@Test
public void testName() {
final Import import1 = mock(Import.class);
final Import import2 = mock(Import.class);
final Import import3 = mock(Import.class);
final List<Import> imports = asList(import1, import2, import3);
final DMNIncludedModelActiveRecord record = new DMNIncludedModelActiveRecord(null);
when(import1.getName()).thenReturn(new Name("foo"));
when(import2.getName()).thenReturn(new Name("bar"));
when(import3.getName()).thenReturn(new Name("foo bar"));
when(modelsIndex.getIndexedImports()).thenReturn(imports);
record.setName("bla");
final Name name = factory.name(record);
final String expected = "bla";
final String actual = name.getValue();
assertEquals(expected, actual);
}
Aggregations