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

edu.stanford.protege.webprotege.crud.ConditionalIriPrefix Maven / Gradle / Ivy

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

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.auto.value.AutoValue;
import edu.stanford.protege.webprotege.criteria.CompositeHierarchyPositionCriteria;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;

/**
 * Matthew Horridge
 * Stanford Center for Biomedical Informatics Research
 * 2020-04-07
 */
@AutoValue

public abstract class ConditionalIriPrefix {

    public static final String IRI_PREFIX = "iriPrefix";

    public static final String CRITERIA = "criteria";

    public static ConditionalIriPrefix get() {
        return get(EntityCrudKitPrefixSettings.DEFAULT_IRI_PREFIX, CompositeHierarchyPositionCriteria.get());
    }

    @Nonnull
    public static ConditionalIriPrefix get(@Nonnull @JsonProperty(IRI_PREFIX) String iriPrefix,
                                           @Nonnull @JsonProperty(CRITERIA) CompositeHierarchyPositionCriteria criteria) {
        return new AutoValue_ConditionalIriPrefix(iriPrefix, criteria);
    }

    @Nonnull
    @JsonCreator
    protected static ConditionalIriPrefix create(@Nonnull @JsonProperty(IRI_PREFIX) String iriPrefix,
                                                 @Nullable @JsonProperty(CRITERIA) CompositeHierarchyPositionCriteria criteria) {
        if(criteria == null) {
            return new AutoValue_ConditionalIriPrefix(iriPrefix, CompositeHierarchyPositionCriteria.get());
        }
        else {
            return new AutoValue_ConditionalIriPrefix(iriPrefix, criteria);
        }
    }

    @Nonnull
    public abstract String getIriPrefix();

    @JsonProperty(CRITERIA)
    @Nonnull
    public abstract CompositeHierarchyPositionCriteria getCriteria();

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy