Skip to content

Package: DependencyList

DependencyList

nameinstructionbranchcomplexitylinemethod
DependencyList(Task)
M: 0 C: 11
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
addDependency(DependencyTask)
M: 0 C: 16
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
containsDependency(Task)
M: 0 C: 34
100%
M: 0 C: 8
100%
M: 0 C: 5
100%
M: 0 C: 7
100%
M: 0 C: 1
100%
create(Task)
M: 0 C: 5
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
getDependencies()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
isEmpty()
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
remove(Task)
M: 0 C: 5
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%

Coverage

1: package de.fhdw.wtf.common.task;
2:
3: import java.util.ArrayList;
4: import java.util.List;
5:
6: import de.fhdw.wtf.common.exception.walker.CyclicDependencyException;
7:
8: /**
9: * List of Dependencies for an "owner"-Task.
10: *
11: */
12: public final class DependencyList {
13:         
14:         /**
15:          * Dependencies.
16:          */
17:         private final List<DependencyTask> dependencies;
18:         
19:         /**
20:          * Owner.
21:          */
22:         private final Task owner;
23:         
24:         /**
25:          * Constructor of {@link DependencyList}.
26:          *
27:          * @param owner
28:          * "owner"-Task.
29:          */
30:         private DependencyList(final Task owner) {
31:                 this.dependencies = new ArrayList<>();
32:                 this.owner = owner;
33:         }
34:         
35:         /**
36:          * Creates a {@link DependencyList}-Object.
37:          *
38:          * @param owner
39:          * "owner"-Task.
40:          * @return The {@link DependencyList}-Object.
41:          */
42:         public static DependencyList create(final Task owner) {
43:                 return new DependencyList(owner);
44:         }
45:         
46:         /**
47:          * Adds a dependency.
48:          *
49:          * @param task
50:          * dependency
51:          * @throws CyclicDependencyException
52:          * possible Exception, if their are a cycle detected.
53:          */
54:         public void addDependency(final DependencyTask task) throws CyclicDependencyException {
55:•                if (task.getDependencies().containsDependency(this.owner)) {
56:                         throw CyclicDependencyException.create(task.toString());
57:                 }
58:                 this.dependencies.add(task);
59:         }
60:         
61:         /**
62:          * Returns true if the dependency list contains the given AbstractTask <code>task</code>.
63:          *
64:          * @param task
65:          * : AbstractTask.
66:          * @return boolean.
67:          */
68:         public boolean containsDependency(final Task task) {
69:                 boolean result = false;
70:•                for (final DependencyTask current : this.dependencies) {
71:•                        if (task.equals(current)) {
72:                                 result = true;
73:                         } else {
74:•                                result = result || current.getDependencies().containsDependency(task);
75:                         }
76:                 }
77:                 return result;
78:         }
79:         
80:         /**
81:          * Removes a dependency.
82:          *
83:          * @param task
84:          * dependency
85:          * @return True, if the dependency was remove.
86:          */
87:         public boolean remove(final Task task) {
88:                 return this.dependencies.remove(task);
89:         }
90:         
91:         /**
92:          * returns true if the list of dependenies is empty, otherwise false.
93:          *
94:          * @return Boolean
95:          */
96:         public boolean isEmpty() {
97:                 return this.dependencies.isEmpty();
98:         }
99:         
100:         /**
101:          * Returns the list of dependencies.
102:          *
103:          * @return dependencies
104:          */
105:         public List<DependencyTask> getDependencies() {
106:                 return this.dependencies;
107:         }
108:         
109: }