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

com.alibaba.qlexpress4.runtime.context.QLAliasContext Maven / Gradle / Ivy

package com.alibaba.qlexpress4.runtime.context;

import com.alibaba.qlexpress4.annotation.QLAlias;
import com.alibaba.qlexpress4.exception.QLException;
import com.alibaba.qlexpress4.runtime.Value;
import com.alibaba.qlexpress4.runtime.data.MapItemValue;

import java.util.HashMap;
import java.util.Map;

public class QLAliasContext implements ExpressContext {

    private final Map context;

    public QLAliasContext(Object...os) {
        Map context = new HashMap<>();
        for (Object o : os) {
            QLAlias[] qlAliases = o.getClass().getAnnotationsByType(QLAlias.class);
            for (QLAlias qlAlias : qlAliases) {
                for (String alias : qlAlias.value()) {
                    context.put(alias, o);
                }
            }
        }
        this.context = context;
    }

    @Override
    public Value get(Map attachments, String variableName) {
        return new MapItemValue(context, variableName);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy