/**
*
*/
package com.personalityextractor.entity.graph.ranking;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import com.personalityextractor.entity.graph.Graph;
import com.personalityextractor.entity.graph.Node;
/**
* @author semanticvoid
*
*/
public class WeightGraphRanker extends AbstractRanker {
public WeightGraphRanker(Graph g) {
super(g);
}
/* (non-Javadoc)
* @see com.personalityextractor.entity.graph.ranking.IRanker#rank(com.personalityextractor.entity.graph.Graph)
*/
@Override
public void rank() {
// do nothing
}
/* (non-Javadoc)
* @see com.personalityextractor.entity.graph.ranking.IRanker#getTopRankedNodes(int)
*/
@Override
public List<Node> getTopRankedNodes(int n) {
List<Node> nodes = new ArrayList<Node>();
nodes.addAll(graph.getNodes());
Collections.sort(nodes, new Comparator<Node>() {
public int compare(Node n1, Node n2) {
if(n1.getWeight() < n2.getWeight()) {
return 1;
} else {
return -1;
}
}
});
List<Node> topNodes = new ArrayList<Node>();
Iterator<Node> itr = nodes.iterator();
int i = 0;
while(itr.hasNext() && i<n) {
Node node = itr.next();
// if(node.getWeight() >= 1) {
topNodes.add(node);
i++;
// }
}
return topNodes;
}
}