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 <T> Optional<T> getObjectFromParam(List<T> objectList, Optional<String> param) {
|
|
if (param.isEmpty()) {
|
|
return Optional.empty();
|
|
}
|
|
return objectList.stream()
|
|
.filter(object -> EntityStringUtils.getObjectStringForURL(object).equals(param.get()))
|
|
.findFirst();
|
|
}
|
|
}
|