Skip to content

Commit

Permalink
Fixes #658
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewhorridge committed Jul 31, 2020
1 parent 4a7ea50 commit b676165
Show file tree
Hide file tree
Showing 3 changed files with 1,462 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,23 @@
import edu.stanford.bmir.protege.web.server.access.AccessManager;
import edu.stanford.bmir.protege.web.server.dispatch.AbstractProjectActionHandler;
import edu.stanford.bmir.protege.web.server.dispatch.ExecutionContext;
import edu.stanford.bmir.protege.web.server.inject.project.RootOntology;
import edu.stanford.bmir.protege.web.server.index.ProjectOntologiesIndex;
import edu.stanford.bmir.protege.web.server.mansyntax.ShellOwlOntology;
import edu.stanford.bmir.protege.web.server.mansyntax.render.OwlOntologyFacadeFactory;
import edu.stanford.bmir.protege.web.server.renderer.RenderingManager;
import edu.stanford.bmir.protege.web.server.shortform.DictionaryManager;
import edu.stanford.bmir.protege.web.server.shortform.EscapingShortFormProvider;
import edu.stanford.bmir.protege.web.shared.frame.GetManchesterSyntaxFrameAction;
import edu.stanford.bmir.protege.web.shared.frame.GetManchesterSyntaxFrameResult;
import org.semanticweb.owlapi.manchestersyntax.renderer.ManchesterOWLSyntaxFrameRenderer;
import org.semanticweb.owlapi.model.HasImportsClosure;
import org.semanticweb.owlapi.model.OWLOntology;
import org.semanticweb.owlapi.util.OntologyIRIShortFormProvider;

import javax.annotation.Nonnull;
import javax.inject.Inject;
import java.io.StringWriter;
import java.util.Set;
import java.util.stream.Collectors;

import static com.google.common.base.Preconditions.checkNotNull;

Expand All @@ -33,31 +37,47 @@ public class GetManchesterSyntaxFrameActionHandler extends AbstractProjectAction
@Nonnull
private final RenderingManager renderingManager;

@Nonnull
private final ProjectOntologiesIndex projectOntologiesIndex;

@Nonnull
private final OwlOntologyFacadeFactory ontologyFacadeFactory;

@Inject
public GetManchesterSyntaxFrameActionHandler(@Nonnull AccessManager accessManager,
@Nonnull OntologyIRIShortFormProvider ontologyIRIShortFormProvider,
@Nonnull DictionaryManager dictionaryManager,
@Nonnull RenderingManager renderingManager) {
@Nonnull RenderingManager renderingManager,
@Nonnull ProjectOntologiesIndex projectOntologiesIndex,
@Nonnull OwlOntologyFacadeFactory ontologyFacadeFactory) {
super(accessManager);
this.ontologyIRIShortFormProvider = checkNotNull(ontologyIRIShortFormProvider);
this.dictionaryManager = checkNotNull(dictionaryManager);
this.renderingManager = checkNotNull(renderingManager);
this.projectOntologiesIndex = checkNotNull(projectOntologiesIndex);
this.ontologyFacadeFactory = ontologyFacadeFactory;
}

@Nonnull
@Override
public GetManchesterSyntaxFrameResult execute(@Nonnull GetManchesterSyntaxFrameAction action,
@Nonnull ExecutionContext executionContext) {
// var writer = new StringWriter();
// var escapingShortFormProvider = new EscapingShortFormProvider(dictionaryManager);
// var frameRenderer = new ManchesterOWLSyntaxFrameRenderer(importsClosure.getImportsClosure(),
// writer, escapingShortFormProvider);
// frameRenderer.setOntologyIRIShortFormProvider(ontologyIRIShortFormProvider);
// frameRenderer.setRenderExtensions(true);
// frameRenderer.writeFrame(action.getSubject());
// var frameSubject = renderingManager.getRendering(action.getSubject());
// return GetManchesterSyntaxFrameResult.get(frameSubject, writer.getBuffer().toString());
throw new RuntimeException();
var writer = new StringWriter();
var escapingShortFormProvider = new EscapingShortFormProvider(dictionaryManager);
var frameRenderer = new ManchesterOWLSyntaxFrameRenderer(
getShellImportsClosure(),
writer, escapingShortFormProvider);
frameRenderer.setOntologyIRIShortFormProvider(ontologyIRIShortFormProvider);
frameRenderer.setRenderExtensions(true);
frameRenderer.writeFrame(action.getSubject());
var frameSubject = renderingManager.getRendering(action.getSubject());
return GetManchesterSyntaxFrameResult.get(frameSubject, writer.getBuffer().toString());
}

private Set<OWLOntology> getShellImportsClosure() {
return projectOntologiesIndex.getOntologyIds()
.map(ontologyFacadeFactory::create)
.collect(Collectors.toSet());
}

@Nonnull
Expand Down
Loading

0 comments on commit b676165

Please sign in to comment.