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;
+    }
+
+
+}