+ boolean consumes(ModuleIdentification lib1, ModuleIdentification lib2) {\r
+ //System.out.println("$$$ lib1 = " + lib1);\r
+ LinkedList<ModuleIdentification> stack = new LinkedList<ModuleIdentification>();\r
+ stack.add(lib1);\r
+ int j = 0;\r
+ while (j < stack.size()) {\r
+ ModuleIdentification lib = stack.get(j++);\r
+ String[] consumedClasses = libInstanceMap.get(lib);\r
+ for (int i = 0; i < consumedClasses.length; ++i) {\r
+ ModuleIdentification consumedLib = libClassMap.get(consumedClasses[i]);\r
+ //System.out.println("$$$ class = " + consumedClasses[i]);\r
+ //System.out.println("$$$ insta = " + consumedLib);\r
+ if (consumedLib == lib2) {\r
+ //System.out.println(lib1 + "\n consumes\n" + lib2 + "\n");\r
+ return true;\r
+ }\r
+ if (consumedLib != null && !stack.contains(consumedLib)) {\r
+ stack.offer(consumedLib);\r
+ }\r
+ }\r
+ }\r
+ return false;\r
+ }\r
+\r