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

edu.stanford.protege.webprotege.change.description.MovedClasses Maven / Gradle / Ivy

The newest version!
package edu.stanford.protege.webprotege.change.description;

import com.google.auto.value.AutoValue;
import com.google.common.collect.ImmutableSet;
import edu.stanford.protege.webprotege.owlapi.OWLObjectStringFormatter;
import org.semanticweb.owlapi.model.OWLClass;

import javax.annotation.Nonnull;

/**
 * Matthew Horridge
 * Stanford Center for Biomedical Informatics Research
 * 2018-12-10
 */
@AutoValue
public abstract class MovedClasses implements StructuredChangeDescription {

    public static MovedClasses get(@Nonnull ImmutableSet classes,
                                   @Nonnull ImmutableSet from,
                                   @Nonnull OWLClass to) {
        return new AutoValue_MovedClasses(classes, from, to);
    }

    @Nonnull
    public abstract ImmutableSet getClasses();

    @Nonnull
    public abstract ImmutableSet getFrom();

    @Nonnull
    public abstract OWLClass getTo();

    @Nonnull
    @Override
    public String getTypeName() {
        return "MovedClasses";
    }

    @Nonnull
    @Override
    public String formatDescription(@Nonnull OWLObjectStringFormatter formatter) {
        if(getClasses().size() == 1) {
            return formatter.formatString("Moved class %s from %s to %s", getClasses(), getFrom(), getTo());
        }
        else {
            return formatter.formatString("Moved classes %s from %s to %s", getClasses(), getFrom(), getTo());
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy