/*
 * $Id: ByKeywordClassifier.java,v 1.2 2004/12/21 10:29:17 koppy Exp $
 *
 * Copyright (c) Siemens AG 2008 
 *           (c) Universität Paderborn 2008 
 * Licensed under EUPL 1.1. 
 * 
 * Created on 09.10.2004
 *
 * $Log: ByKeywordClassifier.java,v $
 * Revision 1.2  2004/12/21 10:29:17  koppy
 * so einiges
 *
 * Revision 1.1  2004/10/09 16:03:02  koppy
 * Initiale Version
 *
 */
package vkc.ws.axis.service.patent;

import java.util.Collection;

import vkc.analyse.Analyser;
import vkc.db.entities.VKCCategory;
import vkc.db.entities.VKCDocument;
import vkc.db.entities.VKCUser;
import vkc.exception.DBException;
import vkc.search.Classifier;
import vkc.search.LuceneClassifier;
import vkc.view.WebShare;

/**
 * This class represents
 * @author Andreas Koop
 */
public class ByKeywordClassifier extends PatentClassifier{

    /**
     * Diese Methode implementiert die einfache Klassifizierung. Bei der einfachen Klassifizierung
	 * werden die in der Patentanmeldung vorkommenden Begriffe genutzt, um den Grad der Übereinstimmung
	 * mit den Patent-Kategorien zu bestimmen (z.B. über Vergleich mit gespeicherten Begriffen zu
	 * den Kategorien).
     * 
     * @see vkc.ws.axis.service.patent.PatentClassifier#classify(vkc.analyse.Analyser, int, vkc.db.entities.VKCUser, vkc.db.entities.VKCCategory)
     */
    protected Collection classify(Analyser analyser, VKCDocument doc,int keywordCount,
            VKCUser user, VKCCategory patentCat) throws DBException {
        return ((LuceneClassifier)WebShare.classifier).classifyByCategoryKeywords(
    			analyser.getKeyWords(keywordCount),
    			Classifier.RANGE_NO_LIMIT,
    			user,
    			PatentUtils.getIssuedCategory(patentCat),
    			PatentClassifier.HITS_COUNT);
    }
    
    /** 
     * (non-Javadoc)
     * @see vkc.ws.axis.service.patent.PatentClassifier#getResultFilename(java.lang.String)
     */
    protected String getResultFilename(String originalPatentFilename) {
        return originalPatentFilename.substring(0, 
                originalPatentFilename.lastIndexOf("."))+ "_Classification1.txt";
    }
    
    /** 
     * (non-Javadoc)
     * @see vkc.ws.axis.service.patent.PatentClassifier#getResultTitle(java.lang.String)
     */
    protected String getResultTitle(String originalPatentFilename) {
        return ByKeywordClassifier.getName();
    }
    
    public static final String getName(){
        return "Klassifikationsergebnis 1 (ByKeywords)";
    }
}
