source: tags/MetisMQIDemo/src/main/java/weka/clusterers/forMetisMQI/util/ContractedVertexTransformer.java

Last change on this file was 29, checked in by gnappo, 15 years ago

Taggata versione per la demo e aggiunto branch.

File size: 1.3 KB
Line 
1package weka.clusterers.forMetisMQI.util;
2
3import java.util.HashMap;
4import java.util.HashSet;
5import java.util.Iterator;
6import java.util.Map;
7import java.util.Set;
8import java.util.Map.Entry;
9
10import org.apache.commons.collections15.Transformer;
11
12import weka.clusterers.forMetisMQI.graph.Node;
13
14public class ContractedVertexTransformer implements Transformer<Node, String> {
15        Map<Node,Set<Node>> mapContracted = null;
16
17        public ContractedVertexTransformer(CoarserGraphElement cge) {
18                mapContracted = new HashMap<Node,Set<Node>>();
19                Iterator<Entry<Node,Node>> entryIterator = cge.getMap().entrySet().iterator();
20                while(entryIterator.hasNext()) {
21                        Entry<Node, Node> entry = entryIterator.next();
22                        Node prevNode = entry.getKey();
23                        Node mappedNode = entry.getValue();
24                        if(!mapContracted.containsKey(mappedNode))
25                                mapContracted.put(mappedNode, new HashSet<Node>());
26                        mapContracted.get(mappedNode).add(prevNode);
27                }
28        }
29       
30        public String transform(Node n) {
31                StringBuffer buffer = new StringBuffer();
32                Iterator<Node> contracted = mapContracted.get(n).iterator();
33                buffer.append("[");
34                while(contracted.hasNext()) {
35                        buffer.append(contracted.next().getId() + ", ");
36                }
37                if(buffer.length() > 1)
38                        buffer.setLength(buffer.length() - 2);
39                buffer.append("]");
40                return buffer.toString();
41        }
42
43}
Note: See TracBrowser for help on using the repository browser.