diff src/main/java/de/mpiwg/itgroup/ismi/search/beans/AbstractQuery.java @ 1:2e911857a759

(none)
author jurzua
date Wed, 29 Oct 2014 14:00:28 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/de/mpiwg/itgroup/ismi/search/beans/AbstractQuery.java	Wed Oct 29 14:00:28 2014 +0000
@@ -0,0 +1,152 @@
+package de.mpiwg.itgroup.ismi.search.beans;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map.Entry;
+
+import javax.faces.event.ActionEvent;
+import javax.faces.event.ValueChangeEvent;
+import javax.faces.model.SelectItem;
+
+import org.apache.log4j.Logger;
+import org.mpi.openmind.cache.WrapperService;
+import org.mpi.openmind.search.utils.ResultEntry;
+
+import de.mpiwg.itgroup.ismi.entry.beans.AbstractBean;
+import de.mpiwg.itgroup.ismi.entry.beans.ApplicationBean;
+
+public class AbstractQuery extends AbstractBean implements Serializable{
+	
+	private static final long serialVersionUID = 8640487026954118233L;
+
+	private static Logger logger = Logger.getLogger(AbstractQuery.class);
+
+	protected ApplicationBean appBean;
+	private boolean searched = false;
+	private Long timeExecution;
+	private String exportType = "xml";
+	
+	protected String exportUrlRoot;
+	private String modeExportDirk;
+	protected String exportDirkUrl;
+	protected String idList;
+	
+	protected List<?> rs;
+	
+	protected int MAX_RS = 20000;
+	
+	private static List<SelectItem> modeExportDirkList;
+	
+	static{
+		modeExportDirkList = new ArrayList<SelectItem>();
+		modeExportDirkList.add(new SelectItem("xml"));
+		modeExportDirkList.add(new SelectItem("tab"));
+		modeExportDirkList.add(new SelectItem("html"));
+		//modeExportDirkList.add(new SelectItem("doc"));
+	}
+	
+	public void listenerChangeModeExportDirk(ValueChangeEvent event){
+		if(event != null && event.getNewValue() != null){
+			this.exportDirkUrl = ApplicationBean.generateExportURL(exportUrlRoot, idList, event.getNewValue().toString());	
+		}
+	}
+	
+	public AbstractQuery(ApplicationBean appBean){
+		this.appBean = appBean;
+		this.modeExportDirk = "xml";
+	}
+	
+	public void listenerReset(ActionEvent event){
+		this.reset();
+		this.modeExportDirk = "xml";	
+	}
+	
+	public void listenerSearch(ActionEvent event){
+		try {
+			long start = System.currentTimeMillis();
+			this.search();
+			long end = System.currentTimeMillis();
+			this.searched = true;
+			this.timeExecution = end - start;
+			logger.info(toString() + " time execution=" + (timeExecution));
+		} catch (Exception e) {
+			logger.error(e.getMessage(), e);
+			printInternalError(e);
+		}
+
+	}
+	
+	public void reset(){
+		this.timeExecution = null;
+		this.searched = false;
+	}
+	
+	protected void search() throws Exception{}
+	
+	protected void printRs(List<ResultEntry> rs, WrapperService ws){
+		StringBuilder sb = new StringBuilder();
+		sb.append("--------------\n");		
+		for(ResultEntry entry : rs){
+			for(Entry<Integer, Long> ent : entry.getEntMap().entrySet()){
+				sb.append(ent.getKey() + ") " + ws.getEntityById(ent.getValue()).toSmallString());		
+			}
+			sb.append("\n");
+		}
+		logger.info("--------------");
+		
+		logger.info(sb.toString());
+		
+	}
+
+	public boolean isSearched() {
+		return searched;
+	}
+
+	public Long getTimeExecution() {
+		return timeExecution;
+	}
+	
+	public WrapperService getOm(){
+		return this.appBean.getWrapper();
+	}
+	
+	public List<?> getRs() {
+		return rs;
+	}
+	
+	public Integer getRsSize(){
+		if(rs != null){
+			return rs.size();
+		}
+		return 0;
+	}
+
+	public String getExportType() {
+		return exportType;
+	}
+
+	public void setExportType(String exportType) {
+		this.exportType = exportType;
+	}
+
+	public List<SelectItem> getModeExportDirkList() {
+		return modeExportDirkList;
+	}
+
+	public String getModeExportDirk() {
+		return modeExportDirk;
+	}
+
+	public void setModeExportDirk(String modeExportDirk) {
+		this.modeExportDirk = modeExportDirk;
+	}
+
+	public String getExportDirkUrl() {
+		return exportDirkUrl;
+	}
+
+	public void setExportDirkUrl(String exportDirkUrl) {
+		this.exportDirkUrl = exportDirkUrl;
+	}
+}