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

edu.stanford.protege.webprotege.diff.DiffElementRenderer Maven / Gradle / Ivy

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

import edu.stanford.protege.webprotege.change.*;
import edu.stanford.protege.webprotege.renderer.HasHtmlBrowserText;

import javax.annotation.Nonnull;
import java.io.Serializable;

/**
 * Matthew Horridge
 * Stanford Center for Biomedical Informatics Research
 * 26/02/15
 */
public class DiffElementRenderer {

    private final HasHtmlBrowserText renderer;

    private final OntologyChangeVisitorEx visitor;

    public DiffElementRenderer(HasHtmlBrowserText ren) {
        this.renderer = ren;
        visitor = new OntologyChangeVisitorEx<>() {

            @Override
            public String visit(@Nonnull AddAxiomChange change)  {
                return renderer.getHtmlBrowserText(change.getAxiom());
            }

            @Override
            public String visit(@Nonnull RemoveAxiomChange change)  {
                return renderer.getHtmlBrowserText(change.getAxiom());
            }

            @Override
            public String visit(@Nonnull AddOntologyAnnotationChange change)  {
                return renderer.getHtmlBrowserText(change.getAnnotation());
            }

            @Override
            public String visit(@Nonnull RemoveOntologyAnnotationChange change)  {
                return renderer.getHtmlBrowserText(change.getAnnotation());
            }

            @Override
            public String visit(@Nonnull AddImportChange change)  {
                return renderer.getHtmlBrowserText(change.getImportsDeclaration().getIRI());
            }

            @Override
            public String visit(@Nonnull RemoveImportChange change)  {
                return renderer.getHtmlBrowserText(change.getImportsDeclaration().getIRI());
            }

            @Override
            public String getDefaultReturnValue() {
                throw new RuntimeException();
            }
        };
    }

    public DiffElement render(DiffElement element) {
        OntologyChange lineElement = element.getLineElement();
        return new DiffElement<>(
                element.getDiffOperation(),
                element.getSourceDocument(),
                renderData(lineElement)
        );
    }

    public String renderData(OntologyChange change) {
        return change.accept(visitor);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy