[hue] Refactor method to reduce nesting and code duplication(#15971)
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
This commit is contained in:
parent
e33cccc29c
commit
b80273a88a
@ -635,10 +635,11 @@ public class Clip2ThingHandler extends BaseThingHandler {
|
|||||||
* @param resource a Resource object containing the new state.
|
* @param resource a Resource object containing the new state.
|
||||||
*/
|
*/
|
||||||
public void onResource(Resource resource) {
|
public void onResource(Resource resource) {
|
||||||
if (!disposing) {
|
if (disposing) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
boolean resourceConsumed = false;
|
boolean resourceConsumed = false;
|
||||||
String incomingResourceId = resource.getId();
|
if (resourceId.equals(resource.getId())) {
|
||||||
if (resourceId.equals(incomingResourceId)) {
|
|
||||||
if (resource.hasFullState()) {
|
if (resource.hasFullState()) {
|
||||||
thisResource = resource;
|
thisResource = resource;
|
||||||
if (!updatePropertiesDone) {
|
if (!updatePropertiesDone) {
|
||||||
@ -651,19 +652,12 @@ public class Clip2ThingHandler extends BaseThingHandler {
|
|||||||
cancelTask(updateDependenciesTask, false);
|
cancelTask(updateDependenciesTask, false);
|
||||||
updateDependenciesTask = scheduler.submit(() -> updateDependencies());
|
updateDependenciesTask = scheduler.submit(() -> updateDependencies());
|
||||||
}
|
}
|
||||||
} else if (SUPPORTED_SCENE_TYPES.contains(resource.getType())) {
|
|
||||||
Resource cachedScene = sceneContributorsCache.get(incomingResourceId);
|
|
||||||
if (Objects.nonNull(cachedScene)) {
|
|
||||||
Setters.setResource(resource, cachedScene);
|
|
||||||
resourceConsumed = updateChannels(resource);
|
|
||||||
sceneContributorsCache.put(incomingResourceId, resource);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
Resource cachedService = serviceContributorsCache.get(incomingResourceId);
|
Resource cachedResource = getResourceFromCache(resource);
|
||||||
if (Objects.nonNull(cachedService)) {
|
if (cachedResource != null) {
|
||||||
Setters.setResource(resource, cachedService);
|
Setters.setResource(resource, cachedResource);
|
||||||
resourceConsumed = updateChannels(resource);
|
resourceConsumed = updateChannels(resource);
|
||||||
serviceContributorsCache.put(incomingResourceId, resource);
|
putResourceToCache(resource);
|
||||||
if (ResourceType.LIGHT == resource.getType() && !updateLightPropertiesDone) {
|
if (ResourceType.LIGHT == resource.getType() && !updateLightPropertiesDone) {
|
||||||
updateLightProperties(resource);
|
updateLightProperties(resource);
|
||||||
}
|
}
|
||||||
@ -673,6 +667,19 @@ public class Clip2ThingHandler extends BaseThingHandler {
|
|||||||
logger.debug("{} -> onResource() consumed resource {}", resourceId, resource);
|
logger.debug("{} -> onResource() consumed resource {}", resourceId, resource);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void putResourceToCache(Resource resource) {
|
||||||
|
if (SUPPORTED_SCENE_TYPES.contains(resource.getType())) {
|
||||||
|
sceneContributorsCache.put(resource.getId(), resource);
|
||||||
|
} else {
|
||||||
|
serviceContributorsCache.put(resource.getId(), resource);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private @Nullable Resource getResourceFromCache(Resource resource) {
|
||||||
|
return SUPPORTED_SCENE_TYPES.contains(resource.getType()) //
|
||||||
|
? sceneContributorsCache.get(resource.getId())
|
||||||
|
: serviceContributorsCache.get(resource.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user