1212 *******************************************************************************/
1313package fr .obeo .ontology .services .project ;
1414
15- import java .util .Optional ;
15+ import java .util .List ;
1616import java .util .UUID ;
1717
18- import org .eclipse .sirius .components .core .RepresentationMetadata ;
1918import org .eclipse .sirius .components .core .api .IEditingContext ;
19+ import org .eclipse .sirius .components .core .api .IEditingContextPersistenceService ;
2020import org .eclipse .sirius .components .emf .ResourceMetadataAdapter ;
2121import org .eclipse .sirius .components .emf .services .JSONResourceFactory ;
2222import org .eclipse .sirius .components .emf .services .api .IEMFEditingContext ;
2323import org .eclipse .sirius .components .events .ICause ;
24- import org .eclipse .sirius .web .application .project .services .api .IProjectTemplateInitializer ;
24+ import org .eclipse .sirius .web .application .project .dto .CreateProjectInput ;
25+ import org .eclipse .sirius .web .application .project .services .api .ISemanticDataInitializer ;
2526import org .springframework .stereotype .Service ;
2627
2728/**
3031 * @author lfasani
3132 */
3233@ Service
33- public class OntologyProjectTemplateInitializer implements IProjectTemplateInitializer {
34+ public class OntologyProjectTemplateInitializer implements ISemanticDataInitializer {
35+ private final IEditingContextPersistenceService editingContextPersistenceService ;
36+
37+ public OntologyProjectTemplateInitializer (IEditingContextPersistenceService editingContextPersistenceService ) {
38+ this .editingContextPersistenceService = editingContextPersistenceService ;
39+ }
40+
3441 @ Override
3542 public boolean canHandle (String projectTemplateId ) {
3643 return OntologyProjectTemplateProvider .ONTOLOGY_EXAMPLE_TEMPLATE_ID .equals (projectTemplateId );
3744 }
3845
3946 @ Override
40- public Optional < RepresentationMetadata > handle (ICause cause , String projectTemplateId , IEditingContext editingContext ) {
47+ public void handle (ICause cause , IEditingContext editingContext , String projectTemplateId ) {
4148 if (OntologyProjectTemplateProvider .ONTOLOGY_EXAMPLE_TEMPLATE_ID .equals (projectTemplateId )) {
42- return this .initializeOntologyModel (editingContext );
49+ this .initializeOntologyModel (editingContext );
50+
51+ this .editingContextPersistenceService .persist (new CreateProjectInput (UUID .randomUUID (), "Ontology" , OntologyProjectTemplateProvider .ONTOLOGY_EXAMPLE_TEMPLATE_ID , List .of ()),
52+ editingContext );
4353 }
44- return Optional .empty ();
4554 }
4655
47- private Optional <RepresentationMetadata > initializeOntologyModel (IEditingContext editingContext ) {
48- Optional <RepresentationMetadata > result = Optional .empty ();
56+ private void initializeOntologyModel (IEditingContext editingContext ) {
4957 if (editingContext instanceof IEMFEditingContext emfEditingContext ) {
5058 var documentId = UUID .randomUUID ();
5159 var resource = new JSONResourceFactory ().createResourceFromPath (documentId .toString ());
@@ -55,6 +63,5 @@ private Optional<RepresentationMetadata> initializeOntologyModel(IEditingContext
5563
5664 resource .getContents ().addAll (new OntologySampleBuilder ().getEmptySampleContent ());
5765 }
58- return result ;
5966 }
6067}
0 commit comments