![JAR search and dependency download from the Maven repository](/logo.png)
it.unibz.inf.ontop.dbschema.impl.json.JsonUniqueConstraint Maven / Gradle / Ivy
The newest version!
package it.unibz.inf.ontop.dbschema.impl.json;
import com.fasterxml.jackson.annotation.*;
import it.unibz.inf.ontop.dbschema.FunctionalDependency;
import it.unibz.inf.ontop.dbschema.NamedRelationDefinition;
import it.unibz.inf.ontop.dbschema.QuotedIDFactory;
import it.unibz.inf.ontop.dbschema.UniqueConstraint;
import it.unibz.inf.ontop.exception.MetadataExtractionException;
import java.util.List;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"name",
"determinants",
"isPrimaryKey"
})
public class JsonUniqueConstraint extends JsonOpenObject {
public final String name;
public final List determinants;
public final Boolean isPrimaryKey;
@JsonCreator
public JsonUniqueConstraint(@JsonProperty("name") String name,
@JsonProperty("determinants") List determinants,
@JsonProperty("isPrimaryKey") Boolean isPrimaryKey) {
this.name = name;
this.determinants = determinants;
this.isPrimaryKey = isPrimaryKey;
}
public JsonUniqueConstraint(UniqueConstraint uc) {
this.name = uc.getName();
this.isPrimaryKey = uc.isPrimaryKey();
this.determinants = JsonMetadata.serializeAttributeList(uc.getAttributes().stream());
}
public void insert(NamedRelationDefinition relation, QuotedIDFactory idFactory) throws MetadataExtractionException {
FunctionalDependency.Builder builder = UniqueConstraint.builder(relation, name);
JsonMetadata.deserializeAttributeList(idFactory, determinants, builder::addDeterminant);
builder.build();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy