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

io.virtdata.core.VirtData Maven / Gradle / Ivy

package io.virtdata.core;

import io.virtdata.api.DataMapper;
import io.virtdata.api.VirtDataFunctionLibrary;

import java.util.Map;
import java.util.Optional;

public class VirtData implements VirtDataLibrary {

    private VirtDataFunctionLibrary lib;
    private static VirtDataLibrary instance = new VirtData(VirtDataLibraries.get(),"global");
    private String libname;

    private VirtData(VirtDataFunctionLibrary lib, String libname) {
        this.lib = lib;
        this.libname = libname;
    }

    public static VirtDataLibrary get() {
        return instance;
    }

    /**
     * Return an instance of a VirtDataLibrary that is parameterized with the
     * provided library and library name.
     * @param functionLib The function library to use instead of the auto-loaded ones
     * @param libname The library name as it will appear in logging and diagnostics
     * @return a usable instance of a VirtDataLibrary
     */
    public VirtDataLibrary get(VirtDataFunctionLibrary functionLib, String libname) {
        return new VirtData(functionLib, libname);
    }

    @Override
    public VirtDataFunctionLibrary getFunctionLibrary() {
        return lib;
    }

    @Override
    public String getLibname() {
        return libname;
    }

    public static BindingsTemplate getTemplate(String... namesAndSpecs) {
        return get().getBindingsTemplate(namesAndSpecs);
    }

    public static  Optional> getMapper(String flowSpec) {
        return get().getDataMapper(flowSpec);
    }

    public static BindingsTemplate getTemplate(Map namedBindings) {
        return get().getBindingsTemplate(namedBindings);
    }

    public static  DataMapper getMapper(String s, Class clazz) {
        return get().getDataMapper(s, clazz);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy