All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.bigcustard.util.Util Maven / Gradle / Ivy

There is a newer version: 1.4.0
Show newest version
package com.bigcustard.util;

import com.badlogic.gdx.files.FileHandle;

import java.io.IOException;
import java.io.InputStream;
import java.util.function.Supplier;

public class Util {
    private Util() {}

    public static  T tryGet(Supplier supplier, T fallback) {
        try {
            return supplier.get();
        } catch (Exception e) {
            return fallback;
        }
    }

    public static FileHandle importFile(InputStream dataStream, String url, FileHandle destination) {
        try {
            FileHandle mainImageFile = generateFileHandle(url, destination);
            mainImageFile.write(dataStream, false);
            dataStream.close();
            return mainImageFile;
        } catch (IOException e) {
            System.err.println("Error importing image: " + e);
            throw new RuntimeException(e);
        }
    }

    private static FileHandle generateFileHandle(String url, FileHandle folder) {
        String filename = url.substring(url.lastIndexOf("/") + 1);
        filename = filename.contains("?") ? filename.substring(0, filename.indexOf("?")) : filename;
        return findUniqueName(filename, folder);
    }

    private static FileHandle findUniqueName(String filename, FileHandle folder) {
        int dotIndex = filename.lastIndexOf('.');
        String filenameExcludingExtension = filename.substring(0, dotIndex);
        String extension = filename.substring(dotIndex);

        FileHandle candidate = folder.child(filenameExcludingExtension + extension);
        int suffix = 2;
        while (candidate.exists()) {
            candidate = folder.child(filenameExcludingExtension + suffix++ + extension);
        }
        return candidate;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy