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

com.alibaba.qlexpress4.runtime.function.MapExtensionFunction Maven / Gradle / Ivy

package com.alibaba.qlexpress4.runtime.function;

import java.lang.reflect.InvocationTargetException;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;

/**
 * Author: DQinYuan
 */
public class MapExtensionFunction extends ExtensionFunction {

    public static final MapExtensionFunction INSTANCE = new MapExtensionFunction();

    private MapExtensionFunction() {
    }

    @Override
    public Class[] getParameterTypes() {
        return new Class[] {Function.class};
    }

    @Override
    public String getName() {
        return "map";
    }

    @Override
    public Class getDeclaringClass() {
        return List.class;
    }

    @Override
    public Object invoke(Object obj, Object[] args) throws InvocationTargetException, IllegalAccessException {
        if (!(obj instanceof List)) {
            return null;
        }
        return ((List) obj).stream().map((Function) args[0]).collect(Collectors.toList());
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy