package app.navigation; import app.utils.EntityStringUtils; import com.vaadin.flow.router.WildcardParameter; import org.springframework.lang.NonNull; import java.util.List; import java.util.Optional; @SuppressWarnings("OptionalUsedAsFieldOrParameterType") public class NavigationUtils { public static final String EDIT = "edit"; private NavigationUtils() { } public static boolean editFlag(@WildcardParameter String param) { String[] params = param.split("/"); return params[params.length - 1].equals(EDIT); } @NonNull public static String getWildcardParam(boolean editFlag, String... params) { StringBuilder stringBuilder = new StringBuilder(); for (String param : params) { if (param == null || param.equals("")) { break; } stringBuilder.append(param).append("/"); } if (editFlag) stringBuilder.append(EDIT).append("/"); return stringBuilder.toString(); } public static Optional getObjectFromParam(List objectList, Optional param) { if (param.isEmpty()) { return Optional.empty(); } return objectList.stream() .filter(object -> EntityStringUtils.getObjectStringForURL(object).equals(param.get())) .findFirst(); } }