package outputter.data;
import java.util.ArrayList;
import java.util.Comparator;
/**
* @author Hong Cui
* This class holds 0 - n proposals for one quality phrase
*/
public class QualityProposals implements Proposals {
ArrayList<Quality> proposals = new ArrayList<Quality>();
String phrase="";
/**
*
*/
public QualityProposals() {
}
@Override
public boolean equals(Object qp){
if(qp instanceof QualityProposals){
return this.content().compareTo(((QualityProposals)qp).content())==0;
}
return false;
}
/**
* TODO: change Object to something more precise.
*/
public boolean add(Object q){
if(q instanceof Quality){
proposals.add((Quality)q);
return true;
}
if(q instanceof QualityProposals){
proposals.addAll(((QualityProposals) q).getProposals());
return true;
}
return false;
}
public String getPhrase() {
return this.phrase;
}
public void setPhrase(String phrase) {
this.phrase = phrase;
}
public ArrayList<Quality> getProposals(){
return proposals;
}
public String toString(){
StringBuffer sb = new StringBuffer();
int count=1;
//sb.append(System.getProperty("line.separator"));
for(Quality q:proposals)
{
sb.append("Q"+count+":"+q.toString()+System.getProperty("line.separator"));
count++;
}
return sb.toString();
}
public String content(){
StringBuffer sb = new StringBuffer();
for(Quality q:proposals)
{
sb.append(q.content());
}
return sb.toString();
}
public float higestScore() {
float max = 0f;
for(Quality quality: proposals){
if(quality.isOntologized()){
float score = quality.getConfidenceScore();
if(score > max){
max = score;
}
}
}
return max;
}
public Quality getEntityWithHigestScore() {
Quality theone = null;
float max = 0f;
for(Quality quality: proposals){
if(quality.isOntologized()){
float score = quality.getConfidenceScore();
if(score > max){
theone = quality;
}
}
}
return theone;
}
public ArrayList<Quality> getQualitiesAbove(float threshold){
ArrayList<Quality> results = new ArrayList<Quality>();
for(Quality quality: proposals){
if(quality.isOntologized()){
float score = quality.getConfidenceScore();
if(score > threshold){
results.add(quality);
}
}
}
return results;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}