package org.openautonomousconnection.luascript.fx; import java.util.Locale; /** * Shared extension helper for media sources. */ public final class MediaExtensions { /** * Extracts a lower-case extension without dot, or empty string if none. * * @param pathOrName path or file name * @return extension without dot, lower-case, or empty string */ public static String extensionOf(String pathOrName) { if (pathOrName == null) return ""; String s = pathOrName.trim(); if (s.isEmpty()) return ""; int q = s.indexOf('?'); if (q >= 0) s = s.substring(0, q); int h = s.indexOf('#'); if (h >= 0) s = s.substring(0, h); int slash = Math.max(s.lastIndexOf('/'), s.lastIndexOf('\\')); String name = (slash >= 0) ? s.substring(slash + 1) : s; int dot = name.lastIndexOf('.'); if (dot < 0 || dot == name.length() - 1) return ""; return name.substring(dot + 1).toLowerCase(Locale.ROOT); } }