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

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

package edu.stanford.protege.webprotege.criteria;

import com.google.auto.value.AutoValue;
import java.util.List;

import javax.annotation.Nonnull;

/**
 * Matthew Horridge
 * Stanford Center for Biomedical Informatics Research
 * 2020-06-18
 */
@AutoValue

public abstract class CompositeLiteralCriteria implements LiteralCriteria {

    public static CompositeLiteralCriteria get(@Nonnull List criteria,
                                               @Nonnull MultiMatchType matchType) {
        return new AutoValue_CompositeLiteralCriteria(List.copyOf(criteria), matchType);
    }

    @Nonnull
    public abstract List getCriteria();

    @Nonnull
    public abstract MultiMatchType getMultiMatchType();

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy