diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/OwnerHealer.java')
-rw-r--r-- | openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/OwnerHealer.java | 105 |
1 files changed, 48 insertions, 57 deletions
diff --git a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/OwnerHealer.java b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/OwnerHealer.java index 9fcc6e5b74..2d89661d26 100644 --- a/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/OwnerHealer.java +++ b/openecomp-be/lib/openecomp-healing-lib/openecomp-sdc-healing-impl/src/main/java/org/openecomp/sdc/healing/healers/OwnerHealer.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -17,9 +17,13 @@ * limitations under the License. * ============LICENSE_END========================================================= */ - package org.openecomp.sdc.healing.healers; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.Objects; +import java.util.Optional; import org.openecomp.sdc.common.errors.SdcRuntimeException; import org.openecomp.sdc.common.session.SessionContextProviderFactory; import org.openecomp.sdc.healing.interfaces.Healer; @@ -34,70 +38,57 @@ import org.openecomp.sdc.versioning.dao.ItemDaoFactory; import org.openecomp.sdc.versioning.dao.types.Version; import org.openecomp.sdc.versioning.types.Item; -import java.util.*; - /** * Created by ayalaben on 8/28/2017 */ public class OwnerHealer implements Healer { - private static final String HEALING_USER_SUFFIX = "_healer"; - private static final ItemPermissionsDao permissionsDao = - ItemPermissionsDaoFactory.getInstance().createInterface(); - private static final ItemDao itemDao = ItemDaoFactory.getInstance().createInterface(); - - private static final SubscribersDao subscribersDao = SubscribersDaoFactory.getInstance() - .createInterface(); - - @Override - public boolean isHealingNeeded(String itemId, Version version) { - return permissionsDao.listItemPermissions(itemId).stream().noneMatch(this::isOwnerPermission) || - isOwnerMissingOnItem(itemId); - } - - public void heal(String itemId, Version version) { - Collection<ItemPermissionsEntity> itemPermissions = permissionsDao.listItemPermissions(itemId); - if (itemPermissions.stream().noneMatch(this::isOwnerPermission)) { - String currentUserId = - SessionContextProviderFactory.getInstance().createInterface().get().getUser().getUserId() - .replace(HEALING_USER_SUFFIX, ""); + private static final String HEALING_USER_SUFFIX = "_healer"; + private static final ItemPermissionsDao permissionsDao = ItemPermissionsDaoFactory.getInstance().createInterface(); + private static final ItemDao itemDao = ItemDaoFactory.getInstance().createInterface(); + private static final SubscribersDao subscribersDao = SubscribersDaoFactory.getInstance().createInterface(); - permissionsDao.updateItemPermissions(itemId, PermissionTypes.Owner.name(), - Collections.singleton(currentUserId), new HashSet<>()); - - updateItemOwner(itemId, currentUserId); - - subscribersDao.subscribe(currentUserId, itemId); + @Override + public boolean isHealingNeeded(String itemId, Version version) { + return permissionsDao.listItemPermissions(itemId).stream().noneMatch(this::isOwnerPermission) || isOwnerMissingOnItem(itemId); + } - } else if (isOwnerMissingOnItem(itemId)) { - Optional<ItemPermissionsEntity> ownerOpt = - itemPermissions.stream().filter(this::isOwnerPermission).findFirst(); - if (ownerOpt.isPresent()) { - updateItemOwner(itemId, ownerOpt.get().getUserId()); - } else { - throw new SdcRuntimeException("Unexpected error in Owner Healer. Item id: " + itemId); - } + public void heal(String itemId, Version version) { + Collection<ItemPermissionsEntity> itemPermissions = permissionsDao.listItemPermissions(itemId); + if (itemPermissions.stream().noneMatch(this::isOwnerPermission)) { + String currentUserId = SessionContextProviderFactory.getInstance().createInterface().get().getUser().getUserId() + .replace(HEALING_USER_SUFFIX, ""); + permissionsDao.updateItemPermissions(itemId, PermissionTypes.Owner.name(), Collections.singleton(currentUserId), new HashSet<>()); + updateItemOwner(itemId, currentUserId); + subscribersDao.subscribe(currentUserId, itemId); + } else if (isOwnerMissingOnItem(itemId)) { + Optional<ItemPermissionsEntity> ownerOpt = itemPermissions.stream().filter(this::isOwnerPermission).findFirst(); + if (ownerOpt.isPresent()) { + updateItemOwner(itemId, ownerOpt.get().getUserId()); + } else { + throw new SdcRuntimeException("Unexpected error in Owner Healer. Item id: " + itemId); + } + } } - } - private void updateItemOwner(String itemId, String userId) { - Item item = new Item(); - item.setId(itemId); - Item retrievedItem = itemDao.get(item); - if (Objects.nonNull(retrievedItem)) { - retrievedItem.setOwner(userId); - itemDao.update(retrievedItem); + private void updateItemOwner(String itemId, String userId) { + Item item = new Item(); + item.setId(itemId); + Item retrievedItem = itemDao.get(item); + if (Objects.nonNull(retrievedItem)) { + retrievedItem.setOwner(userId); + itemDao.update(retrievedItem); + } } - } - private boolean isOwnerMissingOnItem(String itemId) { - Item item = new Item(); - item.setId(itemId); - Item retrievedItem = itemDao.get(item); - return Objects.nonNull(retrievedItem) && Objects.isNull(retrievedItem.getOwner()); - } + private boolean isOwnerMissingOnItem(String itemId) { + Item item = new Item(); + item.setId(itemId); + Item retrievedItem = itemDao.get(item); + return Objects.nonNull(retrievedItem) && Objects.isNull(retrievedItem.getOwner()); + } - private boolean isOwnerPermission(ItemPermissionsEntity permissionsEntity) { - return permissionsEntity.getPermission().equals(PermissionTypes.Owner.name()); - } + private boolean isOwnerPermission(ItemPermissionsEntity permissionsEntity) { + return permissionsEntity.getPermission().equals(PermissionTypes.Owner.name()); + } } |