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

edu.stanford.protege.webprotege.viz.EdgeCriteria Maven / Gradle / Ivy

The newest version!
package edu.stanford.protege.webprotege.viz;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonSubTypes.Type;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import edu.stanford.protege.webprotege.criteria.Criteria;

import javax.annotation.Nonnull;

/**
 * Matthew Horridge
 * Stanford Center for Biomedical Informatics Research
 * 2019-12-05
 */
@JsonTypeInfo(
        use = JsonTypeInfo.Id.NAME,
        property = "match"
)
@JsonSubTypes({
        @Type(AnyEdgeCriteria.class),
        @Type(NoEdgeCriteria.class),
        @Type(AnyInstanceOfEdgeCriteria.class),
        @Type(AnySubClassOfEdgeCriteria.class),
        @Type(AnyRelationshipEdgeCriteria.class),
        @Type(RelationshipEdgePropertyEqualsCriteria.class),
        @Type(HeadNodeMatchesCriteria.class),
        @Type(TailNodeMatchesCriteria.class),
        @Type(NegatedEdgeCriteria.class),
        @Type(CompositeEdgeCriteria.class)
              })
public interface EdgeCriteria extends Criteria {

     R accept(@Nonnull EdgeCriteriaVisitor visitor);

    @JsonIgnore
    @Nonnull
    EdgeCriteria simplify();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy