package edu.gslis.ttg.clusters;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import edu.gslis.eval.Qrels;
import edu.gslis.queries.GQuery;
public class Cluster {
private Set<Long> members;
public Cluster() {
members = new HashSet<Long>();
}
public Cluster(long member) {
members = new HashSet<Long>();
members.add(member);
}
public void add(long member) {
members.add(member);
}
public void add(Set<Long> newMembers) {
members.addAll(newMembers);
}
public Set<Long> getMembers() {
return members;
}
public long getFirstMember() {
return members.iterator().next();
}
public boolean hasMember(long member) {
return members.contains(member);
}
public int getWeight(GQuery query, Qrels qrels) {
// hack to change e.g. MB01 to 01
String q = String.valueOf(Integer.parseInt(query.getTitle().substring(2, query.getTitle().length())));
int weight = 0;
for (long member : members) {
if (qrels.isRel(q, String.valueOf(member))) {
int level = qrels.getRelLevel(q, String.valueOf(member));
weight += level;
}
}
return weight;
}
@Override
public String toString() {
return Arrays.deepToString(members.toArray());
}
public int size() {
return members.size();
}
}