You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

43 lines
1.3 KiB

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();
}
}