Loading pom.xml +1 −1 Original line number Diff line number Diff line Loading @@ -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> Loading src/main/java/es/redmic/es/administrative/service/ActivityESService.java +43 −48 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 */ Loading @@ -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); Loading @@ -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) { Loading @@ -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; } Loading src/main/java/es/redmic/es/administrative/service/ProgramESService.java +2 −5 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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); Loading @@ -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; } Loading src/main/java/es/redmic/es/administrative/service/ProjectESService.java +6 −9 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 */ Loading @@ -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) { Loading @@ -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) { Loading @@ -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; } Loading src/main/java/es/redmic/es/atlas/mapper/LayerESMapper.javadeleted 100644 → 0 +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
pom.xml +1 −1 Original line number Diff line number Diff line Loading @@ -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> Loading
src/main/java/es/redmic/es/administrative/service/ActivityESService.java +43 −48 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 */ Loading @@ -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); Loading @@ -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) { Loading @@ -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; } Loading
src/main/java/es/redmic/es/administrative/service/ProgramESService.java +2 −5 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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); Loading @@ -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; } Loading
src/main/java/es/redmic/es/administrative/service/ProjectESService.java +6 −9 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 */ Loading @@ -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) { Loading @@ -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) { Loading @@ -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; } Loading
src/main/java/es/redmic/es/atlas/mapper/LayerESMapper.javadeleted 100644 → 0 +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; } }