Mercurial > hg > ismi-richfaces
diff src/main/java/de/mpiwg/itgroup/ismi/merge/MissingRelationsBean.java @ 180:0d31c8be7c31
new MissingRelations feature and UI.
including searchByRelations() with Filter in FullEntityRepositoryBean.
author | Robert Casties <casties@mpiwg-berlin.mpg.de> |
---|---|
date | Wed, 13 Jun 2018 14:57:13 +0200 |
parents | |
children | 52aa06772336 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/mpiwg/itgroup/ismi/merge/MissingRelationsBean.java Wed Jun 13 14:57:13 2018 +0200 @@ -0,0 +1,110 @@ +package de.mpiwg.itgroup.ismi.merge; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import org.apache.log4j.Logger; +import org.mpi.openmind.repository.services.utils.RelationFilter; + +import de.mpiwg.itgroup.ismi.browse.EntityRepositoryBean; +import de.mpiwg.itgroup.ismi.browse.FullEntityRepositoryBean; +import de.mpiwg.itgroup.ismi.entry.beans.AbstractISMIBean; + +public class MissingRelationsBean extends AbstractISMIBean implements Serializable{ + + private static Logger logger = Logger.getLogger(MissingRelationsBean.class); + + private static final long serialVersionUID = 1L; + + private FullEntityRepositoryBean browseBean; + + + public MissingRelationsBean(){ + //logger.info("AdvancedSearchBean"); + this.reset(); + } + + public synchronized void reset(){ + logger.info("MissingRelationsBean.reset()"); + browseBean = new FullEntityRepositoryBean(); + browseBean.setObjectClass(TEXT); + + logger.info("MissingRelationsBean.reset() Done."); + } + + + public void actionReset() { + reset(); + } + + + public void actionFindMissingAuthors() { + logger.debug("Start findMissingAuthors..."); + List<RelationFilter> relFilters = new ArrayList<RelationFilter>(); + /* + * find TEXT without was_created_by PERSON relation + */ + browseBean.setObjectClass(TEXT); + RelationFilter relFilter = new RelationFilter(); + relFilter.relObjectClass = "was_created_by"; + relFilter.tarObjectClass = "PERSON"; + relFilter.relationMissing = true; + relFilters.add(relFilter); + try { + browseBean.searchByRelations(relFilters); + } catch (Exception e) { + logger.error(e); + } + logger.debug("Done findMissingAuthors."); + } + + public void actionFindMissingTexts() { + logger.debug("Start findMissingTexts..."); + List<RelationFilter> relFilters = new ArrayList<RelationFilter>(); + /* + * find WITNESS without is_exemplar_of TEXT relation + */ + browseBean.setObjectClass(WITNESS); + RelationFilter relFilter = new RelationFilter(); + relFilter.relObjectClass = "is_exemplar_of"; + relFilter.tarObjectClass = "TEXT"; + relFilter.relationMissing = true; + relFilters.add(relFilter); + try { + browseBean.searchByRelations(relFilters); + } catch (Exception e) { + logger.error(e); + } + logger.debug("Done findMissingTexts."); + } + + public void actionFindMissingCodices() { + logger.debug("Start findMissingCodices..."); + List<RelationFilter> relFilters = new ArrayList<RelationFilter>(); + /* + * find WITNESS without is_part_of CODEX relation + */ + browseBean.setObjectClass(WITNESS); + RelationFilter relFilter = new RelationFilter(); + relFilter.relObjectClass = "is_part_of"; + relFilter.tarObjectClass = "CODEX"; + relFilter.relationMissing = true; + relFilters.add(relFilter); + try { + browseBean.searchByRelations(relFilters); + } catch (Exception e) { + logger.error(e); + } + logger.debug("Done findMissingCodices."); + } + + /** + * @return the browseBean + */ + public EntityRepositoryBean getBrowseBean() { + return browseBean; + } + + +}