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

org.pipservices4.persistence.util.Helpers Maven / Gradle / Ivy

package org.pipservices4.persistence.util;

import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Helpers {
    public static String getFileExtension(String filename) {
        ArrayList matchExt = new ArrayList<>();
        final String fileExtensionRegex = "/(?:\\.([^.]+))?$/";
        Matcher m = Pattern.compile(fileExtensionRegex).matcher(filename);
        while (m.find())
            matchExt.add(m.group());
        return !matchExt.isEmpty() ? matchExt.get(0) : null;
    }

    public static long getLinesUpToIndex(String file, Integer index) {
        if (index == null) {
            return 0;
        }

        final String fileUpToIndex = file.substring(0, index);
        return fileUpToIndex.split("\n").length - 1;
    }

    /**
     * Given a file and a string, find the line number of the string in the file.
     * 
     * @param file:          The file that we're searching in.
     * @param searchingText: The text to search for.
     * @param position:      The position in the file to start searching from.
     * @return A LineRange object.
     */
    public static LineRange getLineRange(String file, String searchingText, Integer position) {
        final int charAtStart = file.indexOf(searchingText, position);
        final String fileUpToStart = file.substring(0, charAtStart);

        final String fileUpToEnd = file.substring(0, charAtStart + searchingText.length());
        return new LineRange(fileUpToStart.split("\n").length - 1,
                fileUpToEnd.split("\n").length - 1);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy