Commit 828d2b83 authored by Noel Alonso's avatar Noel Alonso
Browse files

Merge branch 'feature-cleanAtlasComponents' into 'dev'

Elimina componentes de atlas

See merge request redmic-project/server/library/elasticsearch!8
parents 58a44337 a62f7239
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@
	<groupId>es.redmic.lib</groupId>
	<artifactId>elasticsearch</artifactId>
	<packaging>jar</packaging>
	<version>0.7.0</version>
	<version>0.7.0-feature-cleanAtlasComponents</version>
	<name>ElasticSearch</name>
	<description>ElasticSearch library </description>

+43 −48
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import es.redmic.es.administrative.repository.ActivityESRepository;
import es.redmic.es.atlas.service.LayerESService;
import es.redmic.models.es.administrative.dto.ActivityDTO;
import es.redmic.models.es.administrative.model.Activity;
import es.redmic.models.es.common.dto.JSONCollectionDTO;
@@ -39,9 +38,6 @@ public class ActivityESService extends ActivityBaseAbstractESService<Activity, A

	private String rankId = "3";

	@Autowired
	private LayerESService layerESService;
	
	private ActivityESRepository repository;

	/* Clase del modelo indexado en la referencia */
@@ -49,7 +45,6 @@ public class ActivityESService extends ActivityBaseAbstractESService<Activity, A
	/* Path de elastic para buscar por accessibility */
	private String activityTypePropertyPath = "activityType.id";

	
	@Autowired
	public ActivityESService(ActivityESRepository repository) {
		super(repository);
@@ -65,9 +60,12 @@ public class ActivityESService extends ActivityBaseAbstractESService<Activity, A
	}

	/**
	 * Función para modificar las referencias de activityType en activity en caso de ser necesario.
	 * Función para modificar las referencias de activityType en activity en caso de
	 * ser necesario.
	 * 
	 * @param reference clase que encapsula el modelo de activityType antes y después de ser modificado.
	 * @param reference
	 *            clase que encapsula el modelo de activityType antes y después de
	 *            ser modificado.
	 */

	public void updateActivityType(ReferencesES<ActivityType> reference) {
@@ -75,68 +73,65 @@ public class ActivityESService extends ActivityBaseAbstractESService<Activity, A
		updateReference(reference, activityTypeClassInReference, activityTypePropertyPath);
	}

	
	/**
	 * Función para modificar las referencias de activityBase en su repositorio en caso de ser necesario.
	 * Función para modificar las referencias de activityBase en su repositorio en
	 * caso de ser necesario.
	 * 
	 * @param reference clase que encapsula el modelo de activityBase antes y después de ser modificado.
	 * @param reference
	 *            clase que encapsula el modelo de activityBase antes y después de
	 *            ser modificado.
	 */

	public void updateActivityBase(ReferencesES<Activity> reference) {}

	public void updateActivityBase(ReferencesES<Activity> reference) {
	}

	@Override
	public void postUpdate(ReferencesES<Activity> reference) {
		updateActivityBase(reference);
		layerESService.updateActivity(reference);
	}

	public JSONCollectionDTO findBySpecies(DataQueryDTO dto, String speciesId) {

		DataSearchWrapper<Activity> result = repository.findBySpecies(dto, speciesId);
		return orikaMapper.getMapperFacade().map(result.getHits(), JSONCollectionDTO.class,
				getMappingContext());
		return orikaMapper.getMapperFacade().map(result.getHits(), JSONCollectionDTO.class, getMappingContext());
	}

	public JSONCollectionDTO getActivitiesByProject(String projectId) {

		DataSearchWrapper<Activity> result = repository.findByParent(projectId);
		return orikaMapper.getMapperFacade().map(result.getHits(), JSONCollectionDTO.class,
				getMappingContext());
		return orikaMapper.getMapperFacade().map(result.getHits(), JSONCollectionDTO.class, getMappingContext());
	}

	public JSONCollectionDTO getActivitiesByContact(DataQueryDTO dto, Long contactId) {

		DataSearchWrapper<Activity> result = repository.findByContacts(dto, contactId);
		return orikaMapper.getMapperFacade().map(result.getHits(), JSONCollectionDTO.class,
				getMappingContext());
		return orikaMapper.getMapperFacade().map(result.getHits(), JSONCollectionDTO.class, getMappingContext());
	}

	public JSONCollectionDTO getActivitiesByOrganisation(DataQueryDTO dto, Long organisationId) {

		DataSearchWrapper<Activity> result = repository.findByOrganisations(dto, organisationId);
		return orikaMapper.getMapperFacade().map(result.getHits(), JSONCollectionDTO.class,
				getMappingContext());
		return orikaMapper.getMapperFacade().map(result.getHits(), JSONCollectionDTO.class, getMappingContext());
	}

	public JSONCollectionDTO getActivitiesByDocument(DataQueryDTO dto, Long documentId) {

		DataSearchWrapper<Activity> result = repository.findByDocuments(dto, documentId);
		return orikaMapper.getMapperFacade().map(result.getHits(), JSONCollectionDTO.class,
				getMappingContext());
		return orikaMapper.getMapperFacade().map(result.getHits(), JSONCollectionDTO.class, getMappingContext());
	}

	public JSONCollectionDTO getActivitiesByPlatform(DataQueryDTO dto, Long platformId) {

		DataSearchWrapper<Activity> result = repository.findByPlatforms(dto, platformId);
		return orikaMapper.getMapperFacade().map(result.getHits(), JSONCollectionDTO.class,
				getMappingContext());
		return orikaMapper.getMapperFacade().map(result.getHits(), JSONCollectionDTO.class, getMappingContext());
	}

	@Override
	public String getRankId() {
		return rankId;
	}

	@Override
	public void setRankId(String rankId) {
		this.rankId = rankId;
	}
+2 −5
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import es.redmic.es.administrative.repository.ProgramESRepository;
import es.redmic.es.atlas.service.LayerESService;
import es.redmic.models.es.administrative.dto.ProgramDTO;
import es.redmic.models.es.administrative.model.Program;
import es.redmic.models.es.common.model.ReferencesES;
@@ -34,9 +33,6 @@ public class ProgramESService extends ActivityBaseAbstractESService<Program, Pro

	private String rankId = "1";

	@Autowired
	private LayerESService layerESService;

	@Autowired
	public ProgramESService(ProgramESRepository repository) {
		super(repository);
@@ -53,13 +49,14 @@ public class ProgramESService extends ActivityBaseAbstractESService<Program, Pro
	@Override
	public void postUpdate(ReferencesES<Program> reference) {

		layerESService.updateActivity(reference);
	}

	@Override
	public String getRankId() {
		return rankId;
	}

	@Override
	public void setRankId(String rankId) {
		this.rankId = rankId;
	}
+6 −9
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import es.redmic.es.administrative.repository.ProjectESRepository;
import es.redmic.es.atlas.service.LayerESService;
import es.redmic.models.es.administrative.dto.ProjectDTO;
import es.redmic.models.es.administrative.model.Project;
import es.redmic.models.es.common.dto.JSONCollectionDTO;
@@ -37,9 +36,6 @@ public class ProjectESService extends ActivityBaseAbstractESService<Project, Pro

	private String rankId = "2";

	@Autowired
	private LayerESService layerESService;

	ProjectESRepository repository;

	/* Clase del modelo indexado en la referencia */
@@ -62,12 +58,12 @@ public class ProjectESService extends ActivityBaseAbstractESService<Project, Pro
	}

	/**
	 * Función para modificar las referencias de projectGroup en project en caso
	 * de ser necesario.
	 * Función para modificar las referencias de projectGroup en project en caso de
	 * ser necesario.
	 * 
	 * @param ReferencesES<DomainES>
	 *            clase que encapsula el modelo de projectGroup antes y después
	 *            de ser modificado.
	 *            clase que encapsula el modelo de projectGroup antes y después de
	 *            ser modificado.
	 */

	public void updateProjectGroup(ReferencesES<DomainES> reference) {
@@ -78,7 +74,6 @@ public class ProjectESService extends ActivityBaseAbstractESService<Project, Pro
	@Override
	public void postUpdate(ReferencesES<Project> reference) {

		layerESService.updateActivity(reference);
	}

	public JSONCollectionDTO getProjectsByProgram(String programId) {
@@ -87,10 +82,12 @@ public class ProjectESService extends ActivityBaseAbstractESService<Project, Pro
		return orikaMapper.getMapperFacade().map(result.getHits(), JSONCollectionDTO.class, getMappingContext());
	}

	@Override
	public String getRankId() {
		return rankId;
	}

	@Override
	public void setRankId(String rankId) {
		this.rankId = rankId;
	}
+0 −130
Original line number Diff line number Diff line
package es.redmic.es.atlas.mapper;

/*-
 * #%L
 * ElasticSearch
 * %%
 * Copyright (C) 2019 REDMIC Project / Server
 * %%
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * #L%
 */

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import es.redmic.es.administrative.repository.ActivityBaseESRepository;
import es.redmic.es.atlas.service.LayerESService;
import es.redmic.es.atlas.service.ThemeInspireESService;
import es.redmic.es.common.utils.DataMapperUtils;
import es.redmic.models.es.administrative.model.Activity;
import es.redmic.models.es.administrative.model.ActivityReferences;
import es.redmic.models.es.atlas.dto.LayerDTO;
import es.redmic.models.es.atlas.dto.ProtocolsDTO;
import es.redmic.models.es.atlas.dto.ThemeInspireDTO;
import es.redmic.models.es.atlas.model.LayerModel;
import es.redmic.models.es.atlas.model.Protocols;
import es.redmic.models.es.atlas.model.ThemeInspire;
import es.redmic.models.es.common.query.dto.MgetDTO;
import es.redmic.models.es.data.common.model.DataHitsWrapper;
import ma.glasnost.orika.CustomMapper;
import ma.glasnost.orika.MappingContext;

@Component
public class LayerESMapper extends CustomMapper<LayerModel, LayerDTO> {
	
	@Autowired
	LayerESService service;
	
	@Autowired
	ActivityBaseESRepository activityESRepository;
	
	@Autowired
	ThemeInspireESService themeInspireESService;

	@Override
	public void mapAtoB(LayerModel a, LayerDTO b, MappingContext context) {

		if (a.getParentId() != null)
			b.setParent(service.get(a.getParentId().toString()));
		
		if (a.getProtocols() != null)
			b.setProtocols(mapperFacade.mapAsList(a.getProtocols(), ProtocolsDTO.class));
		
		if (a.getThemeInspire() != null)
			b.setThemeInspire(mapperFacade.map(a.getThemeInspire(), ThemeInspireDTO.class));
	}

	@Override
	public void mapBtoA(LayerDTO b, LayerModel a, MappingContext context) {
		
		a = preparateModel(b, a);
		
		a.setPath(getPath(b));
		
		if (a.getLeaves() == null)
			a.setLeaves(0);

		if (b.getParent() != null)
			a.setParentId(b.getParent().getId());
		
		if (a.getProtocols() != null)
			a.setProtocols(mapperFacade.mapAsList(b.getProtocols(), Protocols.class));
		
		if (b.getThemeInspire() != null)
			a.setThemeInspire((ThemeInspire) mapperFacade.newObject(b.getThemeInspire(), DataMapperUtils.getBaseType(),
				DataMapperUtils.getObjectFactoryContext(themeInspireESService)));
	}
	
	private String getPath(LayerDTO toIndex) {

		if (toIndex.getParent() == null)
			return "root" + "." + toIndex.getId();

		LayerDTO parent = service.get(toIndex.getParent().getId().toString());
		if (parent != null) {
			return parent.getPath() + "." + toIndex.getId();
		}
		return null;
	}
	
	
	@SuppressWarnings("unchecked")
	private LayerModel preparateModel(LayerDTO b, LayerModel a) {

		if (b.getIdActivities() != null && b.getIdActivities().isEmpty() != true) {
					
			DataHitsWrapper<Activity> result = (DataHitsWrapper<Activity>) activityESRepository.mget(new MgetDTO(b.getIdActivities()));
			List<Activity> data = result.getSourceList();
			List<Activity> activities = mapperFacade.mapAsList(data, Activity.class);
			a.setActivities(mapperFacade.mapAsList(activities, ActivityReferences.class));
			if (b.getIdActivities().size() != a.getActivities().size()) {
				for (int i = 0; i < b.getIdActivities().size(); i++) {
					Boolean exist = false;
					for (int j = 0; j < a.getActivities().size(); j++)
						if (b.getIdActivities().get(i) == a.getActivities().get(j).getId().toString()) {
							exist = true;
							break;
						}
					if (exist == false)
						System.err.println("Save layer:" + b.getName() + ", no existe la actividad con ID = "
								+ b.getIdActivities().get(i));
				}
			}
		}

		return a;
	}
}
Loading