Skip to content

Commit b676165

Browse files
Fixes #658
1 parent 4a7ea50 commit b676165

File tree

3 files changed

+1462
-13
lines changed

3 files changed

+1462
-13
lines changed

webprotege-server-core/src/main/java/edu/stanford/bmir/protege/web/server/frame/GetManchesterSyntaxFrameActionHandler.java

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,23 @@
33
import edu.stanford.bmir.protege.web.server.access.AccessManager;
44
import edu.stanford.bmir.protege.web.server.dispatch.AbstractProjectActionHandler;
55
import edu.stanford.bmir.protege.web.server.dispatch.ExecutionContext;
6-
import edu.stanford.bmir.protege.web.server.inject.project.RootOntology;
6+
import edu.stanford.bmir.protege.web.server.index.ProjectOntologiesIndex;
7+
import edu.stanford.bmir.protege.web.server.mansyntax.ShellOwlOntology;
8+
import edu.stanford.bmir.protege.web.server.mansyntax.render.OwlOntologyFacadeFactory;
79
import edu.stanford.bmir.protege.web.server.renderer.RenderingManager;
810
import edu.stanford.bmir.protege.web.server.shortform.DictionaryManager;
911
import edu.stanford.bmir.protege.web.server.shortform.EscapingShortFormProvider;
1012
import edu.stanford.bmir.protege.web.shared.frame.GetManchesterSyntaxFrameAction;
1113
import edu.stanford.bmir.protege.web.shared.frame.GetManchesterSyntaxFrameResult;
1214
import org.semanticweb.owlapi.manchestersyntax.renderer.ManchesterOWLSyntaxFrameRenderer;
13-
import org.semanticweb.owlapi.model.HasImportsClosure;
15+
import org.semanticweb.owlapi.model.OWLOntology;
1416
import org.semanticweb.owlapi.util.OntologyIRIShortFormProvider;
1517

1618
import javax.annotation.Nonnull;
1719
import javax.inject.Inject;
1820
import java.io.StringWriter;
21+
import java.util.Set;
22+
import java.util.stream.Collectors;
1923

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

@@ -33,31 +37,47 @@ public class GetManchesterSyntaxFrameActionHandler extends AbstractProjectAction
3337
@Nonnull
3438
private final RenderingManager renderingManager;
3539

40+
@Nonnull
41+
private final ProjectOntologiesIndex projectOntologiesIndex;
42+
43+
@Nonnull
44+
private final OwlOntologyFacadeFactory ontologyFacadeFactory;
45+
3646
@Inject
3747
public GetManchesterSyntaxFrameActionHandler(@Nonnull AccessManager accessManager,
3848
@Nonnull OntologyIRIShortFormProvider ontologyIRIShortFormProvider,
3949
@Nonnull DictionaryManager dictionaryManager,
40-
@Nonnull RenderingManager renderingManager) {
50+
@Nonnull RenderingManager renderingManager,
51+
@Nonnull ProjectOntologiesIndex projectOntologiesIndex,
52+
@Nonnull OwlOntologyFacadeFactory ontologyFacadeFactory) {
4153
super(accessManager);
4254
this.ontologyIRIShortFormProvider = checkNotNull(ontologyIRIShortFormProvider);
4355
this.dictionaryManager = checkNotNull(dictionaryManager);
4456
this.renderingManager = checkNotNull(renderingManager);
57+
this.projectOntologiesIndex = checkNotNull(projectOntologiesIndex);
58+
this.ontologyFacadeFactory = ontologyFacadeFactory;
4559
}
4660

4761
@Nonnull
4862
@Override
4963
public GetManchesterSyntaxFrameResult execute(@Nonnull GetManchesterSyntaxFrameAction action,
5064
@Nonnull ExecutionContext executionContext) {
51-
// var writer = new StringWriter();
52-
// var escapingShortFormProvider = new EscapingShortFormProvider(dictionaryManager);
53-
// var frameRenderer = new ManchesterOWLSyntaxFrameRenderer(importsClosure.getImportsClosure(),
54-
// writer, escapingShortFormProvider);
55-
// frameRenderer.setOntologyIRIShortFormProvider(ontologyIRIShortFormProvider);
56-
// frameRenderer.setRenderExtensions(true);
57-
// frameRenderer.writeFrame(action.getSubject());
58-
// var frameSubject = renderingManager.getRendering(action.getSubject());
59-
// return GetManchesterSyntaxFrameResult.get(frameSubject, writer.getBuffer().toString());
60-
throw new RuntimeException();
65+
var writer = new StringWriter();
66+
var escapingShortFormProvider = new EscapingShortFormProvider(dictionaryManager);
67+
var frameRenderer = new ManchesterOWLSyntaxFrameRenderer(
68+
getShellImportsClosure(),
69+
writer, escapingShortFormProvider);
70+
frameRenderer.setOntologyIRIShortFormProvider(ontologyIRIShortFormProvider);
71+
frameRenderer.setRenderExtensions(true);
72+
frameRenderer.writeFrame(action.getSubject());
73+
var frameSubject = renderingManager.getRendering(action.getSubject());
74+
return GetManchesterSyntaxFrameResult.get(frameSubject, writer.getBuffer().toString());
75+
}
76+
77+
private Set<OWLOntology> getShellImportsClosure() {
78+
return projectOntologiesIndex.getOntologyIds()
79+
.map(ontologyFacadeFactory::create)
80+
.collect(Collectors.toSet());
6181
}
6282

6383
@Nonnull

0 commit comments

Comments
 (0)