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

org.aksw.jena_sparql_api.relationlet.RelationletNestedImpl Maven / Gradle / Ivy

There is a newer version: 5.2.0-1
Show newest version
package org.aksw.jena_sparql_api.relationlet;

import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import org.aksw.facete.v3.api.path.NestedVarMap;
import org.aksw.facete.v3.api.path.NestedVarMapImpl;
import org.aksw.jenax.arq.util.syntax.ElementUtils;
import org.apache.jena.sparql.core.Var;
import org.apache.jena.sparql.syntax.Element;

public class RelationletNestedImpl
    extends RelationletBase
    implements RelationletSimple
{
    protected Element el;
    protected NestedVarMap varMap;
    protected Map aliasToMember;
//	protected Map exposedVarToElementVar;

    public RelationletNestedImpl(
            Element el,
            Map varMap,
            Set fixedVars) {
        this(el, new NestedVarMapImpl(varMap, fixedVars), Collections.emptyMap());
    }

    public RelationletNestedImpl(
            Element el,
            NestedVarMap varMap,
            Map aliasToMember) {
        super(); //el);
        this.el = el;
        this.varMap = varMap;
        this.aliasToMember = aliasToMember;
//		this.aliasToMember = aliasToMember;
//		this.exposedVarToElementVar = exposedVarToElementVar;
    }

    //@Override
    public Set getVarsMentionedCore() {
        Element el = getElement();
        Set result = ElementUtils.getVarsMentioned(el);
        return result;
    }

    @Override
    public Set getVarsMentioned() {
        Set result = new HashSet<>(getVarsMentionedCore());
        Set mappedVars = varMap.getVarsMentioned();
        result.addAll(mappedVars);

        return result;
    }

    @Override
    public NestedVarMap getNestedVarMap() {
        return varMap;
    }

//
//	@Override
//	public RelationletNested getMember(String alias) {
//		return null;
//		//return aliasToMember.get(alias);
//	}
//
//	@Override
//	public Var getInternalVar(Var var) {
//		// TODO Auto-generated method stub
//		return null;
//	}
//
//	@Override
//	public Collection getExposedVars() {
//		// TODO Auto-generated method stub
//		return null;
//	}
//
//	@Override
//	public Set getVarsMentioned() {
//		// TODO Auto-generated method stub
//		return null;
//	}
//
    @Override
    public Set getPinnedVars() {
        return varMap.getFixedFinalVars();
    }
//
    @Override
    public Relationlet setPinnedVar(Var var, boolean onOrOff) {
        throw new UnsupportedOperationException("Cannot mark vars as fixed on this object");
    }

//	@Override
//	public Relationlet getMember(String alias) {
//		// TODO Auto-generated method stub
//		return null;
//	}

//	@Override
//	public Var getInternalVar(Var var) {
//		// TODO Auto-generated method stub
//		return null;
//	}

    @Override
    public Collection getExposedVars() {
        return null;
    }

    @Override
    public RelationletSimple materialize() {
        return this;
    }

    @Override
    public Element getElement() {
        return el;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy