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

it.unibz.inf.ontop.iq.ConcreteIQTreeCache Maven / Gradle / Ivy

package it.unibz.inf.ontop.iq;

import com.google.common.collect.ImmutableSet;
import it.unibz.inf.ontop.iq.node.VariableNullability;
import it.unibz.inf.ontop.iq.request.FunctionalDependencies;
import it.unibz.inf.ontop.iq.request.VariableNonRequirement;
import it.unibz.inf.ontop.model.term.NonVariableTerm;
import it.unibz.inf.ontop.model.term.Variable;
import it.unibz.inf.ontop.substitution.Substitution;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;

/**
 * TODO: find a better name
 *
 * These methods are RESERVED to the IQTree implementations
 *
 */
public interface ConcreteIQTreeCache extends IQTreeCache {

    @Nullable
    ImmutableSet getVariables();

    @Nullable
    VariableNonRequirement getVariableNonRequirement();

    @Nullable
    VariableNullability getVariableNullability();

    @Nullable
    ImmutableSet> getPossibleVariableDefinitions();

    @Nullable
    ImmutableSet> getUniqueConstraints();

    @Nullable
    FunctionalDependencies getFunctionalDependencies();

    @Nullable
    Boolean isDistinct();

    /**
     * Can only be set ONCE!
     */
    void setVariables(@Nonnull ImmutableSet variables);

    /**
     * Can only be set ONCE!
     */
    void setVariableNonRequirement(@Nonnull VariableNonRequirement notInternallyRequiredVariables);

    /**
     * Can only be set ONCE!
     */
    void setVariableNullability(@Nonnull VariableNullability variableNullability);

    /**
     * Can only be set ONCE!
     */
    void setPossibleVariableDefinitions(@Nonnull ImmutableSet> possibleVariableDefinitions);

    /**
     * Can only be set ONCE!
     */
    void setUniqueConstraints(@Nonnull ImmutableSet> uniqueConstraints);

    /**
     * Can only be set ONCE!
     */
    void setFunctionalDependencies(@Nonnull FunctionalDependencies functionalDependencies);

    /**
     * Can only be set ONCE!
     */
    void setIsDistinct(@Nonnull Boolean isDistinct);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy