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

edu.stanford.protege.webprotege.criteria.EntityRelationshipCriteria Maven / Gradle / Ivy

package edu.stanford.protege.webprotege.criteria;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.google.auto.value.AutoValue;

import javax.annotation.Nonnull;

/**
 * Matthew Horridge
 * Stanford Center for Biomedical Informatics Research
 * 2019-12-02
 */
@AutoValue
@JsonTypeName("EntityRelationship")

public abstract class EntityRelationshipCriteria implements EntityMatchCriteria {

    private static final String PRESENCE = "presence";

    private static final String PROPERTY = "property";

    private static final String VALUE = "value";

    @Nonnull
    @JsonCreator
    public static EntityRelationshipCriteria get(@Nonnull @JsonProperty(PRESENCE) RelationshipPresence presence,
                                                 @Nonnull @JsonProperty(PROPERTY) RelationshipPropertyCriteria propertyCriteria,
                                                 @Nonnull @JsonProperty(VALUE) RelationshipValueCriteria valueCriteria) {
        return new AutoValue_EntityRelationshipCriteria(presence, propertyCriteria, valueCriteria);
    }

    @Nonnull
    @JsonProperty(PRESENCE)
    public abstract RelationshipPresence getRelationshipPresence();

    @Nonnull
    @JsonProperty(PROPERTY)
    public abstract RelationshipPropertyCriteria getRelationshipPropertyCriteria();

    @Nonnull
    @JsonProperty(VALUE)
    public abstract RelationshipValueCriteria getRelationshipValueCriteria();

    @Override
    public  R accept(RootCriteriaVisitor visitor) {
        return visitor.visit(this);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy