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

it.unibz.inf.ontop.constraints.ImmutableCQ Maven / Gradle / Ivy

package it.unibz.inf.ontop.constraints;

import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import it.unibz.inf.ontop.model.atom.AtomPredicate;
import it.unibz.inf.ontop.model.atom.DataAtom;
import it.unibz.inf.ontop.model.term.Variable;
import it.unibz.inf.ontop.model.term.VariableOrGroundTerm;
import it.unibz.inf.ontop.substitution.Substitution;

import java.util.Objects;
import java.util.Optional;

public class ImmutableCQ

{ private final ImmutableSet answerVariables; private final Substitution substitution; private final ImmutableList> atoms; public ImmutableCQ(ImmutableSet answerVariables, Substitution substitution, ImmutableList> atoms) { this.answerVariables = answerVariables; this.substitution = substitution; this.atoms = atoms; } public VariableOrGroundTerm getAnswerTerm(Variable variable) { return Optional.ofNullable(substitution.get(variable)).orElse(variable); } public ImmutableSet getAnswerVariables() { return answerVariables; } public Substitution getSubstitution() { return substitution; } public ImmutableList> getAtoms() { return atoms; } @Override public int hashCode() { return Objects.hash(atoms, answerVariables, substitution); } @Override public boolean equals(Object other) { if (other instanceof ImmutableCQ) { ImmutableCQ otherCQ = (ImmutableCQ) other; return atoms.equals(otherCQ.atoms) && answerVariables.equals(otherCQ.answerVariables) && substitution.equals(otherCQ.substitution); } return false; } @Override public String toString() { return "q" + answerVariables + "/" + substitution + " :- " + atoms; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy