Skip to content

Commit 7e0c89e

Browse files
committed
refactor: remove unneeded DependentResourceNode interface
1 parent 52140bb commit 7e0c89e

File tree

4 files changed

+106
-135
lines changed

4 files changed

+106
-135
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/DefaultDependentResourceNode.java

Lines changed: 0 additions & 121 deletions
This file was deleted.

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/DefaultManagedWorkflow.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,6 @@ public Workflow<P> resolve(KubernetesClient client,
8282
private DependentResourceNode createDRN(
8383
KubernetesClient client, ControllerConfiguration<P> configuration,
8484
SpecDependentResourceNode spec) {
85-
return new DefaultDependentResourceNode(spec.resolve(client, configuration));
85+
return new DependentResourceNode(spec.resolve(client, configuration));
8686
}
8787
}
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,117 @@
11
package io.javaoperatorsdk.operator.processing.dependent.workflow;
22

3+
import java.util.LinkedList;
34
import java.util.List;
45
import java.util.Optional;
56

67
import io.fabric8.kubernetes.api.model.HasMetadata;
78
import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
89

910
@SuppressWarnings("rawtypes")
10-
public interface DependentResourceNode<R, P extends HasMetadata> {
11+
public class DependentResourceNode<R, P extends HasMetadata> {
1112

12-
Optional<Condition<R, P>> getReconcilePrecondition();
13+
private final List<DependentResourceNode> dependsOn = new LinkedList<>();
14+
private final List<DependentResourceNode> parents = new LinkedList<>();
15+
private final String name;
16+
private Condition<R, P> reconcilePrecondition;
17+
private Condition<R, P> deletePostcondition;
18+
private Condition<R, P> readyPostcondition;
19+
private DependentResource<R, P> dependentResource;
1320

14-
Optional<Condition<R, P>> getDeletePostcondition();
21+
public List<? extends DependentResourceNode> getDependsOn() {
22+
return dependsOn;
23+
}
1524

16-
List<? extends DependentResourceNode> getDependsOn();
25+
void addParent(DependentResourceNode parent) {
26+
parents.add(parent);
27+
}
1728

18-
Optional<Condition<R, P>> getReadyPostcondition();
1929

20-
List<? extends DependentResourceNode> getParents();
30+
void addDependsOnRelation(DependentResourceNode node) {
31+
node.addParent(this);
32+
dependsOn.add(node);
33+
}
2134

22-
String getName();
35+
public List<DependentResourceNode> getParents() {
36+
return parents;
37+
}
2338

24-
DependentResource<R, P> getDependentResource();
39+
public String getName() {
40+
return name;
41+
}
42+
43+
44+
public Optional<Condition<R, P>> getReconcilePrecondition() {
45+
return Optional.ofNullable(reconcilePrecondition);
46+
}
47+
48+
49+
public Optional<Condition<R, P>> getDeletePostcondition() {
50+
return Optional.ofNullable(deletePostcondition);
51+
}
52+
53+
void setReconcilePrecondition(Condition<R, P> reconcilePrecondition) {
54+
this.reconcilePrecondition = reconcilePrecondition;
55+
}
56+
57+
void setDeletePostcondition(Condition<R, P> cleanupCondition) {
58+
this.deletePostcondition = cleanupCondition;
59+
}
60+
61+
public Optional<Condition<R, P>> getReadyPostcondition() {
62+
return Optional.ofNullable(readyPostcondition);
63+
}
64+
65+
void setReadyPostcondition(Condition<R, P> readyPostcondition) {
66+
this.readyPostcondition = readyPostcondition;
67+
}
68+
69+
public DependentResource<R, P> getDependentResource() {
70+
return dependentResource;
71+
}
72+
73+
public void setDependentResource(DependentResource<R, P> dependentResource) {
74+
this.dependentResource = dependentResource;
75+
}
76+
77+
@Override
78+
public boolean equals(Object o) {
79+
if (this == o) {
80+
return true;
81+
}
82+
if (o == null || getClass() != o.getClass()) {
83+
return false;
84+
}
85+
DependentResourceNode<?, ?> that = (DependentResourceNode<?, ?>) o;
86+
return name.equals(that.name);
87+
}
88+
89+
@Override
90+
public int hashCode() {
91+
return name.hashCode();
92+
}
93+
94+
95+
public DependentResourceNode(DependentResource<R, P> dependentResource) {
96+
this(dependentResource, null, null);
97+
}
98+
99+
public DependentResourceNode(DependentResource<R, P> dependentResource,
100+
Condition<R, P> reconcilePrecondition, Condition<R, P> deletePostcondition) {
101+
this.name = getNameFor(dependentResource);
102+
setDependentResource(dependentResource);
103+
setReconcilePrecondition(reconcilePrecondition);
104+
setDeletePostcondition(deletePostcondition);
105+
}
106+
107+
@SuppressWarnings("rawtypes")
108+
static String getNameFor(DependentResource dependentResource) {
109+
return DependentResource.defaultNameFor(dependentResource.getClass()) + "#"
110+
+ dependentResource.hashCode();
111+
}
112+
113+
@Override
114+
public String toString() {
115+
return "DependentResourceNode{" + getDependentResource() + '}';
116+
}
25117
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowBuilder.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@
1717
@SuppressWarnings({"rawtypes", "unchecked"})
1818
public class WorkflowBuilder<P extends HasMetadata> {
1919

20-
private final Map<String, DefaultDependentResourceNode<?, P>> dependentResourceNodes =
20+
private final Map<String, DependentResourceNode<?, P>> dependentResourceNodes =
2121
new HashMap<>();
2222
private boolean throwExceptionAutomatically = THROW_EXCEPTION_AUTOMATICALLY_DEFAULT;
23-
private DefaultDependentResourceNode currentNode;
23+
private DependentResourceNode currentNode;
2424
private boolean isCleaner = false;
2525

2626
public WorkflowBuilder<P> addDependentResource(DependentResource dependentResource) {
27-
currentNode = new DefaultDependentResourceNode<>(dependentResource);
27+
currentNode = new DependentResourceNode<>(dependentResource);
2828
isCleaner = dependentResource.isDeletable();
2929
final var name = currentNode.getName();
3030
dependentResourceNodes.put(name, currentNode);
@@ -61,11 +61,11 @@ public WorkflowBuilder<P> withDeletePostcondition(Condition deletePostcondition)
6161
return this;
6262
}
6363

64-
DefaultDependentResourceNode getNodeByDependentResource(
64+
DependentResourceNode getNodeByDependentResource(
6565
DependentResource<?, ?> dependentResource) {
6666
// first check by name
6767
final var node =
68-
dependentResourceNodes.get(DefaultDependentResourceNode.getNameFor(dependentResource));
68+
dependentResourceNodes.get(DependentResourceNode.getNameFor(dependentResource));
6969
if (node != null) {
7070
return node;
7171
} else {

0 commit comments

Comments
 (0)