Mercurial > hg > ismi-richfaces
diff src/main/java/de/mpiwg/itgroup/ismi/merge/NonpublicEntitiesBean.java @ 196:dedd218ad565
new find-non-public-entities function for aliases with source or target relations.
author | Robert Casties <casties@mpiwg-berlin.mpg.de> |
---|---|
date | Thu, 20 Dec 2018 19:13:34 +0100 |
parents | b36a57a452a6 |
children |
line wrap: on
line diff
--- a/src/main/java/de/mpiwg/itgroup/ismi/merge/NonpublicEntitiesBean.java Fri Dec 14 16:54:05 2018 +0100 +++ b/src/main/java/de/mpiwg/itgroup/ismi/merge/NonpublicEntitiesBean.java Thu Dec 20 19:13:34 2018 +0100 @@ -79,6 +79,88 @@ logger.debug("Done findNonpublicDigitalizations."); } + /** + * Find non-public ALIASes with source relations to public entities. + */ + public void actionFindNonpublicAliasSrcs() { + logger.debug("Start findNonpublicAliasSrcs..."); + List<RelationFilter> relFilters = new ArrayList<RelationFilter>(); + /* + * find ALIAS -*-> * relations + */ + browseBean = new FullEntityRepositoryBean(); + browseBean.setObjectClass(ALIAS); + RelationFilter relFilter = new RelationFilter(); + relFilter.relObjectClass = "*"; + relFilter.tarObjectClass = "*"; + relFilters.add(relFilter); + try { + // search all aliases with target relations + browseBean.searchByRelations(relFilters); + // filter out non-public ALIASes of public entities + List<Entity> entities = browseBean.getEntities(); + List<Entity> nonpublicEntities = new ArrayList<Entity>(); + for (Entity ent : entities) { + if (!ent.getIsPublic()) { + List<Relation> rels = ent.getSourceRelations("*", "*"); + for (Relation rel : rels) { + Entity tar = getWrapper().getEntityById(rel.getTargetId()); + if (tar.getIsPublic()) { + nonpublicEntities.add(ent); + break; + } + } + } + } + browseBean.updateEntities(nonpublicEntities); + + } catch (Exception e) { + logger.error(e); + } + logger.debug("Done findNonpublicAliasSrcs."); + } + + /** + * Find non-public ALIASes with target relations to public entities. + */ + public void actionFindNonpublicAliasTars() { + logger.debug("Start findNonpublicAliasTars..."); + List<RelationFilter> relFilters = new ArrayList<RelationFilter>(); + /* + * find ALIAS <-*- * relations + */ + browseBean = new FullEntityRepositoryBean(); + browseBean.setObjectClass(ALIAS); + RelationFilter relFilter = new RelationFilter(); + relFilter.relObjectClass = "*"; + relFilter.srcObjectClass = "*"; + relFilters.add(relFilter); + try { + // search all aliases with target relations + browseBean.searchByRelations(relFilters); + // filter out non-public ALIASes of public entities + List<Entity> entities = browseBean.getEntities(); + List<Entity> nonpublicEntities = new ArrayList<Entity>(); + for (Entity ent : entities) { + if (!ent.getIsPublic()) { + List<Relation> rels = ent.getTargetRelations("*", "*"); + for (Relation rel : rels) { + Entity tar = getWrapper().getEntityById(rel.getSourceId()); + if (tar.getIsPublic()) { + nonpublicEntities.add(ent); + break; + } + } + } + } + browseBean.updateEntities(nonpublicEntities); + + } catch (Exception e) { + logger.error(e); + } + logger.debug("Done findNonpublicAliasTars."); + } + /** * Makes the selected Entities public. * Uses PrivacityUtils.changeEntityPrivacity().