33import edu .stanford .bmir .protege .web .server .access .AccessManager ;
44import edu .stanford .bmir .protege .web .server .dispatch .AbstractProjectActionHandler ;
55import 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 ;
79import edu .stanford .bmir .protege .web .server .renderer .RenderingManager ;
810import edu .stanford .bmir .protege .web .server .shortform .DictionaryManager ;
911import edu .stanford .bmir .protege .web .server .shortform .EscapingShortFormProvider ;
1012import edu .stanford .bmir .protege .web .shared .frame .GetManchesterSyntaxFrameAction ;
1113import edu .stanford .bmir .protege .web .shared .frame .GetManchesterSyntaxFrameResult ;
1214import org .semanticweb .owlapi .manchestersyntax .renderer .ManchesterOWLSyntaxFrameRenderer ;
13- import org .semanticweb .owlapi .model .HasImportsClosure ;
15+ import org .semanticweb .owlapi .model .OWLOntology ;
1416import org .semanticweb .owlapi .util .OntologyIRIShortFormProvider ;
1517
1618import javax .annotation .Nonnull ;
1719import javax .inject .Inject ;
1820import java .io .StringWriter ;
21+ import java .util .Set ;
22+ import java .util .stream .Collectors ;
1923
2024import 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