use of org.molgenis.semanticmapper.mapping.model.MappingProject in project molgenis by molgenis.
the class MappingServiceImpl method cloneMappingProject.
@Override
@PreAuthorize("hasAnyRole('ROLE_SYSTEM, ROLE_SU, ROLE_PLUGIN_WRITE_menumanager')")
@Transactional
public MappingProject cloneMappingProject(String mappingProjectId) {
MappingProject mappingProject = mappingProjectRepository.getMappingProject(mappingProjectId);
if (mappingProject == null) {
throw new UnknownEntityException("Mapping project [" + mappingProjectId + "] does not exist");
}
String mappingProjectName = mappingProject.getName();
// determine cloned mapping project name (use Windows 7 naming strategy):
String clonedMappingProjectName;
for (int i = 1; ; ++i) {
if (i == 1) {
clonedMappingProjectName = mappingProjectName + " - Copy";
} else {
clonedMappingProjectName = mappingProjectName + " - Copy (" + i + ")";
}
if (mappingProjectRepository.getMappingProjects(new QueryImpl<>().eq(NAME, clonedMappingProjectName)).isEmpty()) {
break;
}
}
return cloneMappingProject(mappingProject, clonedMappingProjectName);
}
use of org.molgenis.semanticmapper.mapping.model.MappingProject in project molgenis by molgenis.
the class MappingServiceImpl method applyMappings.
@Override
@Transactional
public long applyMappings(String mappingProjectId, String entityTypeId, Boolean addSourceAttribute, String packageId, String label, Progress progress) {
MappingProject mappingProject = getMappingProject(mappingProjectId);
MappingTarget mappingTarget = mappingProject.getMappingTargets().get(0);
progress.setProgressMax(calculateMaxProgress(mappingTarget));
progress.progress(0, format("Checking target repository [%s]...", entityTypeId));
EntityType targetMetadata = createTargetMetadata(mappingTarget, entityTypeId, packageId, label, addSourceAttribute);
Repository<Entity> targetRepo = getTargetRepository(entityTypeId, targetMetadata);
return applyMappingsInternal(mappingTarget, targetRepo, progress);
}
use of org.molgenis.semanticmapper.mapping.model.MappingProject in project molgenis by molgenis.
the class MappingServiceControllerTest method itShouldCreateNewAttributeMappingWhenSavingIfNonePresent.
@Test
public void itShouldCreateNewAttributeMappingWhenSavingIfNonePresent() throws Exception {
when(mappingService.getMappingProject("asdf")).thenReturn(mappingProject);
Menu menu = mock(Menu.class);
when(menuReaderService.getMenu()).thenReturn(menu);
when(menu.findMenuItemPath(ID)).thenReturn("/menu/main/mappingservice");
heightAttr = attrMetaFactory.create().setName("height").setDataType(INT);
hop.addAttribute(heightAttr);
mockMvc.perform(post(URI + "/saveattributemapping").param("mappingProjectId", "asdf").param("target", "HOP").param("source", "LifeLines").param("targetAttribute", "height").param("algorithm", "$('length').value()").param("algorithmState", "CURATED")).andExpect(redirectedUrl("/menu/main/mappingservice/mappingproject/asdf"));
MappingProject expected = new MappingProject("hop hop hop", me);
expected.setIdentifier("asdf");
MappingTarget mappingTarget = expected.addTarget(hop);
EntityMapping entityMapping = mappingTarget.addSource(lifeLines);
AttributeMapping ageMapping = entityMapping.addAttributeMapping("age");
ageMapping.setAlgorithm("$('dob').age()");
AttributeMapping heightMapping = entityMapping.addAttributeMapping("height");
heightMapping.setAlgorithm("$('length').value()");
heightMapping.setAlgorithmState(AttributeMapping.AlgorithmState.CURATED);
Mockito.verify(mappingService).updateMappingProject(expected);
}
use of org.molgenis.semanticmapper.mapping.model.MappingProject in project molgenis by molgenis.
the class MappingServiceControllerTest method beforeTest.
@BeforeMethod
public void beforeTest() {
me = mock(User.class);
when(me.getUsername()).thenReturn("fdlk");
TestingAuthenticationToken authentication = new TestingAuthenticationToken("fdlk", null);
authentication.setAuthenticated(true);
SecurityContextHolder.getContext().setAuthentication(authentication);
hop = entityTypeFactory.create("HOP");
ageAttr = attrMetaFactory.create().setName("age").setDataType(INT);
hop.addAttribute(ageAttr);
dobAttr = attrMetaFactory.create().setName("dob").setDataType(DATE);
hop.addAttribute(dobAttr);
hop.setAbstract(true);
lifeLines = entityTypeFactory.create("LifeLines");
mappingProject = new MappingProject("hop hop hop", me);
mappingProject.setIdentifier("asdf");
MappingTarget mappingTarget = mappingProject.addTarget(hop);
EntityMapping entityMapping = mappingTarget.addSource(lifeLines);
AttributeMapping attributeMapping = entityMapping.addAttributeMapping("age");
attributeMapping.setAlgorithm("$('dob').age()");
when(dataService.getMeta()).thenReturn(metaDataService);
mockMvc = MockMvcBuilders.standaloneSetup(controller).setMessageConverters(gsonHttpMessageConverter, new StringHttpMessageConverter()).build();
}
use of org.molgenis.semanticmapper.mapping.model.MappingProject in project molgenis by molgenis.
the class MappingServiceControllerTest method itShouldRemoveEmptyAttributeMappingsWhenSaving.
@Test
public void itShouldRemoveEmptyAttributeMappingsWhenSaving() throws Exception {
when(mappingService.getMappingProject("asdf")).thenReturn(mappingProject);
Menu menu = mock(Menu.class);
when(menuReaderService.getMenu()).thenReturn(menu);
when(menu.findMenuItemPath(ID)).thenReturn("/menu/main/mappingservice");
mockMvc.perform(post(URI + "/saveattributemapping").param("mappingProjectId", "asdf").param("target", "HOP").param("source", "LifeLines").param("targetAttribute", "age").param("algorithm", "").param("algorithmState", "CURATED")).andExpect(redirectedUrl("/menu/main/mappingservice/mappingproject/asdf"));
MappingProject expected = new MappingProject("hop hop hop", me);
expected.setIdentifier("asdf");
MappingTarget mappingTarget = expected.addTarget(hop);
mappingTarget.addSource(lifeLines);
Mockito.verify(mappingService).updateMappingProject(expected);
}
Aggregations