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

it.unibz.inf.ontop.dbschema.FunctionalDependency Maven / Gradle / Ivy

package it.unibz.inf.ontop.dbschema;

import com.google.common.collect.ImmutableSet;
import it.unibz.inf.ontop.dbschema.impl.FunctionalDependencyImpl;

/**
 * A functional dependency
 */

public interface FunctionalDependency {

    ImmutableSet getDeterminants();

    ImmutableSet getDependents();

    interface Builder {
        Builder addDeterminant(int determinantIndex);
        Builder addDeterminant(QuotedID determinantId) throws AttributeNotFoundException;

        Builder addDependent(int dependentIndex);
        Builder addDependent(QuotedID dependentId) throws AttributeNotFoundException;

        void build();
    }

    static Builder defaultBuilder(NamedRelationDefinition relation) {
        return FunctionalDependencyImpl.builder(relation);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy