refactoring getAttributesKvEntries method
This commit is contained in:
parent
44a4e8eee5
commit
c2d754f9d8
@ -78,7 +78,6 @@ import java.util.HashSet;
|
|||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
@ -288,73 +287,36 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor {
|
|||||||
private ListenableFuture<List<List<AttributeKvEntry>>> getAttributesKvEntries(GetAttributeRequestMsg request) {
|
private ListenableFuture<List<List<AttributeKvEntry>>> getAttributesKvEntries(GetAttributeRequestMsg request) {
|
||||||
ListenableFuture<List<AttributeKvEntry>> clientAttributesFuture;
|
ListenableFuture<List<AttributeKvEntry>> clientAttributesFuture;
|
||||||
ListenableFuture<List<AttributeKvEntry>> sharedAttributesFuture;
|
ListenableFuture<List<AttributeKvEntry>> sharedAttributesFuture;
|
||||||
if (!clientIsPresent(request) && !sharedIsPresent(request)) {
|
if (listIsEmpty(request.getClientAttributeNamesList()) && listIsEmpty(request.getSharedAttributeNamesList())) {
|
||||||
clientAttributesFuture = findAllClientAttributes();
|
clientAttributesFuture = findAllAttributesByScope(CLIENT_SCOPE);
|
||||||
sharedAttributesFuture = findAllSharedAttributes();
|
sharedAttributesFuture = findAllAttributesByScope(SHARED_SCOPE);
|
||||||
} else if (clientIsPresent(request) && sharedIsPresent(request)) {
|
} else if (!listIsEmpty(request.getClientAttributeNamesList()) && !listIsEmpty(request.getSharedAttributeNamesList())) {
|
||||||
if (clientIsNotEmpty(request) && sharedIsNotEmpty(request)) {
|
clientAttributesFuture = findAttributesByScope(toSet(request.getClientAttributeNamesList()), CLIENT_SCOPE);
|
||||||
clientAttributesFuture = findClientAttributes(request);
|
sharedAttributesFuture = findAttributesByScope(toSet(request.getSharedAttributeNamesList()), SHARED_SCOPE);
|
||||||
sharedAttributesFuture = findSharedAttributes(request);
|
} else if (listIsEmpty(request.getClientAttributeNamesList()) && !listIsEmpty(request.getSharedAttributeNamesList())) {
|
||||||
} else {
|
|
||||||
clientAttributesFuture = findAllClientAttributes();
|
|
||||||
sharedAttributesFuture = findAllSharedAttributes();
|
|
||||||
}
|
|
||||||
} else if (clientIsPresent(request) && !sharedIsPresent(request)) {
|
|
||||||
if (clientIsNotEmpty(request)) {
|
|
||||||
clientAttributesFuture = findClientAttributes(request);
|
|
||||||
} else {
|
|
||||||
clientAttributesFuture = findAllClientAttributes();
|
|
||||||
}
|
|
||||||
sharedAttributesFuture = Futures.immediateFuture(Collections.emptyList());
|
|
||||||
} else {
|
|
||||||
if (sharedIsNotEmpty(request)) {
|
|
||||||
sharedAttributesFuture = findSharedAttributes(request);
|
|
||||||
} else {
|
|
||||||
sharedAttributesFuture = findAllSharedAttributes();
|
|
||||||
}
|
|
||||||
clientAttributesFuture = Futures.immediateFuture(Collections.emptyList());
|
clientAttributesFuture = Futures.immediateFuture(Collections.emptyList());
|
||||||
|
sharedAttributesFuture = findAttributesByScope(toSet(request.getSharedAttributeNamesList()), SHARED_SCOPE);
|
||||||
|
} else {
|
||||||
|
sharedAttributesFuture = Futures.immediateFuture(Collections.emptyList());
|
||||||
|
clientAttributesFuture = findAttributesByScope(toSet(request.getClientAttributeNamesList()), CLIENT_SCOPE);
|
||||||
}
|
}
|
||||||
return Futures.allAsList(Arrays.asList(clientAttributesFuture, sharedAttributesFuture));
|
return Futures.allAsList(Arrays.asList(clientAttributesFuture, sharedAttributesFuture));
|
||||||
}
|
}
|
||||||
|
|
||||||
private ListenableFuture<List<AttributeKvEntry>> findAllSharedAttributes() {
|
private ListenableFuture<List<AttributeKvEntry>> findAllAttributesByScope(String scope) {
|
||||||
return systemContext.getAttributesService().findAll(tenantId, deviceId, SHARED_SCOPE);
|
return systemContext.getAttributesService().findAll(tenantId, deviceId, scope);
|
||||||
}
|
}
|
||||||
|
|
||||||
private ListenableFuture<List<AttributeKvEntry>> findAllClientAttributes() {
|
private ListenableFuture<List<AttributeKvEntry>> findAttributesByScope(Set<String> attributesSet, String scope) {
|
||||||
return systemContext.getAttributesService().findAll(tenantId, deviceId, CLIENT_SCOPE);
|
return systemContext.getAttributesService().find(tenantId, deviceId, scope, attributesSet);
|
||||||
}
|
}
|
||||||
|
|
||||||
private ListenableFuture<List<AttributeKvEntry>> findSharedAttributes(GetAttributeRequestMsg request) {
|
private Set<String> toSet(List<String> strings) {
|
||||||
return systemContext.getAttributesService().find(tenantId, deviceId, SHARED_SCOPE, getSharedAttributesSet(request));
|
return new HashSet<>(strings);
|
||||||
}
|
}
|
||||||
|
|
||||||
private ListenableFuture<List<AttributeKvEntry>> findClientAttributes(GetAttributeRequestMsg request) {
|
private boolean listIsEmpty(List<String> strings) {
|
||||||
return systemContext.getAttributesService().find(tenantId, deviceId, CLIENT_SCOPE, getClientAttributesSet(request));
|
return strings == null || strings.isEmpty();
|
||||||
}
|
|
||||||
|
|
||||||
private boolean clientIsNotEmpty(GetAttributeRequestMsg request) {
|
|
||||||
return !getClientAttributesSet(request).isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean sharedIsNotEmpty(GetAttributeRequestMsg request) {
|
|
||||||
return !getSharedAttributesSet(request).isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
private Set<String> getSharedAttributesSet(GetAttributeRequestMsg request) {
|
|
||||||
return toOptionalSet(request.getSharedAttributeNamesList()).get();
|
|
||||||
}
|
|
||||||
|
|
||||||
private Set<String> getClientAttributesSet(GetAttributeRequestMsg request) {
|
|
||||||
return toOptionalSet(request.getClientAttributeNamesList()).get();
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean sharedIsPresent(GetAttributeRequestMsg request) {
|
|
||||||
return toOptionalSet(request.getSharedAttributeNamesList()).isPresent();
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean clientIsPresent(GetAttributeRequestMsg request) {
|
|
||||||
return toOptionalSet(request.getClientAttributeNamesList()).isPresent();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handlePostAttributesRequest(ActorContext context, SessionInfoProto sessionInfo, PostAttributeMsg postAttributes) {
|
private void handlePostAttributesRequest(ActorContext context, SessionInfoProto sessionInfo, PostAttributeMsg postAttributes) {
|
||||||
@ -603,14 +565,6 @@ class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcessor {
|
|||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Optional<Set<String>> toOptionalSet(List<String> strings) {
|
|
||||||
if (strings == null || strings.isEmpty()) {
|
|
||||||
return Optional.empty();
|
|
||||||
} else {
|
|
||||||
return Optional.of(new HashSet<>(strings));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sendToTransport(GetAttributeResponseMsg responseMsg, SessionInfoProto sessionInfo) {
|
private void sendToTransport(GetAttributeResponseMsg responseMsg, SessionInfoProto sessionInfo) {
|
||||||
DeviceActorToTransportMsg msg = DeviceActorToTransportMsg.newBuilder()
|
DeviceActorToTransportMsg msg = DeviceActorToTransportMsg.newBuilder()
|
||||||
.setSessionIdMSB(sessionInfo.getSessionIdMSB())
|
.setSessionIdMSB(sessionInfo.getSessionIdMSB())
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user