edu.stanford.protege.webprotege.bulkop.NewAnnotationData Maven / Gradle / Ivy
The newest version!
package edu.stanford.protege.webprotege.bulkop;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.auto.value.AutoValue;
import org.semanticweb.owlapi.model.OWLAnnotationProperty;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.Optional;
/**
* Matthew Horridge
* Stanford Center for Biomedical Informatics Research
* 27 Sep 2018
*/
@AutoValue
public abstract class NewAnnotationData {
@JsonCreator
public static NewAnnotationData get(@JsonProperty("property") @Nonnull Optional property,
@JsonProperty("value") @Nonnull Optional value,
@JsonProperty("languageTag") @Nonnull Optional languageTag) {
return new AutoValue_NewAnnotationData(property.orElse(null),
value.orElse(null),
languageTag.orElse(null));
}
@Nullable
protected abstract OWLAnnotationProperty property();
@Nonnull
public Optional getProperty() {
return Optional.ofNullable(property());
}
@Nullable
protected abstract String value();
@Nonnull
public Optional getValue() {
return Optional.ofNullable(value());
}
@Nullable
protected abstract String languageTag();
@Nonnull
public Optional getLanguageTag() {
return Optional.ofNullable(languageTag());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy