@@ -14,22 +14,12 @@ public abstract class AbstractDependentResource<R, P extends HasMetadata>
14
14
private final boolean creatable = this instanceof Creator ;
15
15
private final boolean updatable = this instanceof Updater ;
16
16
private final boolean deletable = this instanceof Deleter ;
17
- private final boolean filteringEventSource ;
18
- private final boolean cachingEventSource ;
19
17
protected Creator <R , P > creator ;
20
18
protected Updater <R , P > updater ;
21
19
protected Deleter <P > deleter ;
22
20
23
21
@ SuppressWarnings ("unchecked" )
24
22
public AbstractDependentResource () {
25
- if (this instanceof EventSourceProvider ) {
26
- final var eventSource = ((EventSourceProvider <P >) this ).getEventSource ();
27
- filteringEventSource = eventSource instanceof RecentOperationEventFilter ;
28
- cachingEventSource = eventSource instanceof RecentOperationCacheFiller ;
29
- } else {
30
- filteringEventSource = false ;
31
- cachingEventSource = false ;
32
- }
33
23
creator = creatable ? (Creator <R , P >) this : null ;
34
24
updater = updatable ? (Updater <R , P >) this : null ;
35
25
deleter = deletable ? (Deleter <P >) this : null ;
@@ -81,27 +71,27 @@ protected void handleCreate(R desired, P primary, Context<P> context) {
81
71
}
82
72
83
73
private void cleanupAfterEventFiltering (R desired , ResourceID resourceID , R created ) {
84
- if (filteringEventSource ) {
74
+ if (isFilteringEventSource () ) {
85
75
eventSourceAsRecentOperationEventFilter ()
86
76
.cleanupOnCreateOrUpdateEventFiltering (resourceID , created );
87
77
}
88
78
}
89
79
90
80
private void cacheAfterCreate (ResourceID resourceID , R created ) {
91
- if (cachingEventSource ) {
81
+ if (isRecentOperationCacheFiller () ) {
92
82
eventSourceAsRecentOperationCacheFiller ().handleRecentResourceCreate (resourceID , created );
93
83
}
94
84
}
95
85
96
86
private void cacheAfterUpdate (R actual , ResourceID resourceID , R updated ) {
97
- if (cachingEventSource ) {
87
+ if (isRecentOperationCacheFiller () ) {
98
88
eventSourceAsRecentOperationCacheFiller ().handleRecentResourceUpdate (resourceID , updated ,
99
89
actual );
100
90
}
101
91
}
102
92
103
93
private void prepareEventFiltering (R desired , ResourceID resourceID ) {
104
- if (filteringEventSource ) {
94
+ if (isFilteringEventSource () ) {
105
95
eventSourceAsRecentOperationEventFilter ().prepareForCreateOrUpdateEventFiltering (resourceID ,
106
96
desired );
107
97
}
@@ -130,6 +120,26 @@ private RecentOperationCacheFiller<R> eventSourceAsRecentOperationCacheFiller()
130
120
return (RecentOperationCacheFiller <R >) ((EventSourceProvider <P >) this ).getEventSource ();
131
121
}
132
122
123
+ // this cannot be done in constructor since event source might be initialized later
124
+ protected boolean isFilteringEventSource () {
125
+ if (this instanceof EventSourceProvider ) {
126
+ final var eventSource = ((EventSourceProvider <P >) this ).getEventSource ();
127
+ return eventSource instanceof RecentOperationEventFilter ;
128
+ } else {
129
+ return false ;
130
+ }
131
+ }
132
+
133
+ // this cannot be done in constructor since event source might be initialized later
134
+ protected boolean isRecentOperationCacheFiller () {
135
+ if (this instanceof EventSourceProvider ) {
136
+ final var eventSource = ((EventSourceProvider <P >) this ).getEventSource ();
137
+ return eventSource instanceof RecentOperationCacheFiller ;
138
+ } else {
139
+ return false ;
140
+ }
141
+ }
142
+
133
143
@ Override
134
144
public void cleanup (P primary , Context <P > context ) {
135
145
if (isDeletable (primary , context )) {
0 commit comments