
io.imunity.furms.ui.utils.VaadinExceptionHandler Maven / Gradle / Ivy
/*
* Copyright (c) 2020 Bixbit s.c. All rights reserved.
* See LICENSE file for licensing information.
*/
package io.imunity.furms.ui.utils;
import static io.imunity.furms.ui.utils.NotificationUtils.showErrorNotification;
import static io.imunity.furms.ui.utils.VaadinTranslator.getTranslation;
import static java.util.Collections.emptyMap;
import java.lang.invoke.MethodHandles;
import java.util.Map;
import java.util.Optional;
import java.util.function.Supplier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.imunity.furms.api.validation.exceptions.CommunityAllocationHasProjectAllocationsRemoveValidationError;
import io.imunity.furms.api.validation.exceptions.DuplicatedNameValidationError;
import io.imunity.furms.api.validation.exceptions.InfraServiceHasIndirectlyResourceCreditsRemoveValidationError;
import io.imunity.furms.api.validation.exceptions.RemovingCommunityException;
import io.imunity.furms.api.validation.exceptions.ResourceTypeHasResourceCreditsRemoveValidationError;
import io.imunity.furms.api.validation.exceptions.UserWithoutFenixIdValidationError;
import io.imunity.furms.domain.site_agent.SiteAgentException;
public class VaadinExceptionHandler {
private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
private static final Map, String> GENERIC_KNOWN_EXCEPTIONS = Map.of(
DuplicatedNameValidationError.class, "name.duplicated.error.message",
RemovingCommunityException.class, "community.removing.error.message",
InfraServiceHasIndirectlyResourceCreditsRemoveValidationError.class, "service.removing.error.message",
ResourceTypeHasResourceCreditsRemoveValidationError.class, "resource-type.removing.error.message",
SiteAgentException.class, "site-agent.error.message",
CommunityAllocationHasProjectAllocationsRemoveValidationError.class, "community-allocation.removing.error.message",
UserWithoutFenixIdValidationError.class, "user.without.fenixid.error.message");
public static Optional handleExceptions(Supplier supplier) {
return handleExceptions(supplier, emptyMap());
}
public static Optional handleExceptions(Supplier supplier,
Map, String> extraMappings) {
try {
return Optional.ofNullable(supplier.get());
} catch (Exception e) {
OptionalException
© 2015 - 2025 Weber Informatics LLC | Privacy Policy