20
20
21
21
import javax .annotation .Nonnull ;
22
22
23
- import org .eclipse .ditto .base .model .acks .AcknowledgementLabel ;
24
- import org .eclipse .ditto .base .model .acks .DittoAcknowledgementLabel ;
25
- import org .eclipse .ditto .base .model .headers .DittoHeaders ;
26
- import org .eclipse .ditto .base .model .headers .entitytag .EntityTag ;
27
23
import org .eclipse .ditto .client .internal .AbstractHandle ;
28
24
import org .eclipse .ditto .client .internal .OutgoingMessageFactory ;
29
25
import org .eclipse .ditto .client .internal .bus .PointerBus ;
30
26
import org .eclipse .ditto .client .messaging .MessagingProvider ;
31
27
import org .eclipse .ditto .client .options .Option ;
32
28
import org .eclipse .ditto .client .policies .Policies ;
29
+ import org .eclipse .ditto .json .JsonFieldSelector ;
33
30
import org .eclipse .ditto .json .JsonObject ;
34
31
import org .eclipse .ditto .json .JsonValue ;
32
+ import org .eclipse .ditto .base .model .acks .AcknowledgementLabel ;
33
+ import org .eclipse .ditto .base .model .acks .DittoAcknowledgementLabel ;
35
34
import org .eclipse .ditto .policies .model .PoliciesModelFactory ;
36
35
import org .eclipse .ditto .policies .model .Policy ;
37
36
import org .eclipse .ditto .policies .model .PolicyId ;
38
- import org .eclipse .ditto .policies . model . PolicyRevision ;
37
+ import org .eclipse .ditto .protocol . TopicPath ;
39
38
import org .eclipse .ditto .policies .model .signals .commands .modify .CreatePolicy ;
40
39
import org .eclipse .ditto .policies .model .signals .commands .modify .CreatePolicyResponse ;
41
40
import org .eclipse .ditto .policies .model .signals .commands .modify .DeletePolicy ;
44
43
import org .eclipse .ditto .policies .model .signals .commands .modify .PolicyModifyCommandResponse ;
45
44
import org .eclipse .ditto .policies .model .signals .commands .query .RetrievePolicy ;
46
45
import org .eclipse .ditto .policies .model .signals .commands .query .RetrievePolicyResponse ;
47
- import org .eclipse .ditto .protocol .TopicPath ;
48
46
49
47
/**
50
48
* Default implementation for {@link Policies}.
@@ -78,44 +76,14 @@ public static PoliciesImpl newInstance(final MessagingProvider messagingProvider
78
76
return new PoliciesImpl (messagingProvider , outgoingMessageFactory , bus );
79
77
}
80
78
81
- private static Optional <PolicyRevision > getRevisionFromDittoHeaders (final DittoHeaders dittoHeaders ) {
82
- return dittoHeaders
83
- .getETag ()
84
- .map (EntityTag ::getOpaqueTag )
85
- .filter (tag -> tag .contains ("rev:" ))
86
- .map (tag -> tag .replace ("rev:" , "" ).replaceAll ("\" " , "" ))
87
- .map (Long ::parseLong )
88
- .map (PolicyRevision ::newInstance );
89
- }
90
-
91
- private static Policy setRevisionToPolicy (final PolicyRevision policyRevision , final Policy policy ) {
92
- return policy .toBuilder ()
93
- .setRevision (policyRevision )
94
- .build ();
95
- }
96
-
97
- private static Policy appendRevisionFromHeadersIfNeeded (final Policy policy , final DittoHeaders dittoHeaders ) {
98
- final Policy policyWithRevision ;
99
- final Optional <PolicyRevision > revisionFromPolicy = policy .getRevision ();
100
- policyWithRevision = revisionFromPolicy
101
- .map (policyRevision -> setRevisionToPolicy (policyRevision , policy ))
102
- .orElseGet (() -> getRevisionFromDittoHeaders (dittoHeaders )
103
- .map (revisionFromHeaders -> setRevisionToPolicy (revisionFromHeaders , policy ))
104
- .orElse (policy ));
105
- return policyWithRevision ;
106
- }
107
-
108
79
@ Override
109
80
public CompletionStage <Policy > create (final Policy policy , final Option <?>... options ) {
110
81
argumentNotNull (policy );
111
82
assertThatPolicyHasId (policy );
112
83
113
84
final CreatePolicy command = outgoingMessageFactory .createPolicy (policy , options );
114
85
return askPolicyCommand (command , CreatePolicyResponse .class ,
115
- response -> response .getPolicyCreated ()
116
- .map (policyFromResponse -> appendRevisionFromHeadersIfNeeded (policyFromResponse ,
117
- response .getDittoHeaders ()))
118
- .orElse (null ));
86
+ response -> response .getPolicyCreated ().orElse (null ));
119
87
}
120
88
121
89
@ Override
@@ -137,8 +105,6 @@ public CompletionStage<Optional<Policy>> put(final Policy policy, final Option<?
137
105
response -> response .getEntity (response .getImplementedSchemaVersion ())
138
106
.map (JsonValue ::asObject )
139
107
.map (PoliciesModelFactory ::newPolicy )
140
- .map (policyFromResponse -> appendRevisionFromHeadersIfNeeded (policyFromResponse ,
141
- response .getDittoHeaders ()))
142
108
);
143
109
}
144
110
@@ -176,12 +142,29 @@ public CompletionStage<Void> delete(final PolicyId policyId, final Option<?>...
176
142
}
177
143
178
144
@ Override
179
- public CompletionStage <Policy > retrieve (PolicyId policyId ) {
145
+ public CompletionStage <Policy > retrieve (final PolicyId policyId ) {
180
146
final RetrievePolicy command = outgoingMessageFactory .retrievePolicy (policyId );
181
- return askPolicyCommand (command , RetrievePolicyResponse .class , response -> {
182
- final Policy policyFromResponse = response .getPolicy ();
183
- return appendRevisionFromHeadersIfNeeded (policyFromResponse , response .getDittoHeaders ());
184
- });
147
+ return askPolicyCommand (command , RetrievePolicyResponse .class , RetrievePolicyResponse ::getPolicy );
148
+ }
149
+
150
+ @ Override
151
+ public CompletionStage <Policy > retrieve (final PolicyId policyId , final Option <?>... options ) {
152
+ final RetrievePolicy command = outgoingMessageFactory .retrievePolicy (policyId , options );
153
+ return askPolicyCommand (command , RetrievePolicyResponse .class , RetrievePolicyResponse ::getPolicy );
154
+ }
155
+
156
+ @ Override
157
+ public CompletionStage <Policy > retrieve (final PolicyId policyId , final JsonFieldSelector fieldSelector ) {
158
+ final RetrievePolicy command = outgoingMessageFactory .retrievePolicy (policyId , fieldSelector );
159
+ return askPolicyCommand (command , RetrievePolicyResponse .class , RetrievePolicyResponse ::getPolicy );
160
+ }
161
+
162
+ @ Override
163
+ public CompletionStage <Policy > retrieve (final PolicyId policyId , final JsonFieldSelector fieldSelector ,
164
+ final Option <?>... options ) {
165
+
166
+ final RetrievePolicy command = outgoingMessageFactory .retrievePolicy (policyId , fieldSelector , options );
167
+ return askPolicyCommand (command , RetrievePolicyResponse .class , RetrievePolicyResponse ::getPolicy );
185
168
}
186
169
187
170
private static void assertThatPolicyHasId (final Policy policy ) {
0 commit comments