1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.xnap.pkg;
21
22 import java.util.Iterator;
23 import java.util.LinkedList;
24
25 /***
26 */
27 public class PackageDependencyNode extends AbstractDependencyNode
28 {
29
30
31
32 private PackageInfo info;
33 private DependencyNode conflicts;
34 private DependencyNode depends;
35 private boolean required;
36
37
38
39 public PackageDependencyNode(PackageInfo info)
40 {
41 super(info.getName() + " " + info.getVersion());
42
43 this.info = info;
44 }
45
46
47
48 public void checkDepends(boolean requireInstalled)
49 throws UnsatisfiedDependenciesException
50 {
51 if (requireInstalled && !info.isInstalled()) {
52 throw new UnsatisfiedDependenciesException
53 (info.getPackage() + " is not installed");
54 }
55 if (depends != null) {
56 depends.require(requireInstalled);
57 }
58 }
59
60 public Iterator children()
61 {
62 LinkedList l = new LinkedList();
63 if (depends != null) {
64 l.add(depends);
65 }
66 return l.iterator();
67 }
68
69 public DependencyNode getConflicts()
70 {
71 return conflicts;
72 }
73
74 public DependencyNode getDepends()
75 {
76 return depends;
77 }
78
79 public PackageInfo getPackage()
80 {
81 return info;
82 }
83
84 public void setConflicts(DependencyNode node)
85 {
86 this.conflicts = node;
87 }
88
89 public void setDepends(DependencyNode node)
90 {
91 this.depends = node;
92 }
93
94 }
95