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

com.github.leeonky.dal.ast.node.ListMappingNodeMeta Maven / Gradle / Ivy

package com.github.leeonky.dal.ast.node;

import com.github.leeonky.dal.runtime.Data;
import com.github.leeonky.dal.runtime.MetaData;
import com.github.leeonky.dal.runtime.RuntimeContextBuilder;

import static com.github.leeonky.dal.runtime.ExpressionException.opt2;

public class ListMappingNodeMeta extends ListMappingNode {
    public ListMappingNodeMeta(DALNode symbolNode) {
        super(symbolNode);
    }

    @Override
    public Data getValue(DALNode left, RuntimeContextBuilder.DALRuntimeContext context) {
        return context.wrap(opt2(left.evaluateData(context)::list).listMap(item ->
                context.invokeMetaProperty(new MetaData(new ConstValueNode(item.instance()), getRootSymbolName(), context))));
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy