01: package com.mockrunner.gen.jar;
02:
03: import java.util.ArrayList;
04: import java.util.HashMap;
05: import java.util.List;
06: import java.util.Map;
07: import java.util.Set;
08: import java.util.TreeSet;
09:
10: import com.kirkk.analyzer.framework.Jar;
11:
12: public class JarFileExtractor {
13: private List mainJars;
14: private List exceptionJars;
15:
16: public JarFileExtractor(List mainJars, List exceptionJars) {
17: this .mainJars = new ArrayList(mainJars);
18: this .exceptionJars = new ArrayList(exceptionJars);
19: }
20:
21: public Jar[] filter(Jar jars[]) {
22: List finalList = new ArrayList();
23: for (int ii = 0; ii < jars.length; ii++) {
24: if (mainJars.contains(jars[ii].getJarFileName())) {
25: finalList.add(jars[ii]);
26: }
27: }
28: return (Jar[]) finalList.toArray(new Jar[finalList.size()]);
29: }
30:
31: public Map createDependencies(Jar jars[]) {
32: Map finalMap = new HashMap();
33: for (int ii = 0; ii < jars.length; ii++) {
34: if (mainJars.contains(jars[ii].getJarFileName())) {
35: Set currentSet = createDependencySet(jars[ii]);
36: finalMap.put(jars[ii].getJarFileName(), currentSet);
37: }
38: }
39: return finalMap;
40: }
41:
42: private Set createDependencySet(Jar jar) {
43: Set resultSet = new TreeSet();
44: List dependendJars = jar.getOutgoingDependencies();
45: if (null == dependendJars)
46: return resultSet;
47: for (int ii = 0; ii < dependendJars.size(); ii++) {
48: Jar currentJar = (Jar) dependendJars.get(ii);
49: String currentJarFileName = currentJar.getJarFileName();
50: resultSet.add(currentJarFileName);
51: if (!exceptionJars.contains(currentJarFileName)) {
52: resultSet.addAll(createDependencySet(currentJar));
53: }
54: }
55: return resultSet;
56: }
57: }
|