cleanup (inspection "Java | Class structure | Utility class is not 'final'")
[idea/community.git] / jps / model-serialization / src / org / jetbrains / jps / model / serialization / impl / JpsSerializationManagerImpl.java
1 // Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package org.jetbrains.jps.model.serialization.impl;
3
4 import org.jetbrains.annotations.NotNull;
5 import org.jetbrains.annotations.Nullable;
6 import org.jetbrains.jps.model.JpsElementFactory;
7 import org.jetbrains.jps.model.JpsGlobal;
8 import org.jetbrains.jps.model.JpsModel;
9 import org.jetbrains.jps.model.JpsProject;
10 import org.jetbrains.jps.model.serialization.*;
11
12 import java.io.IOException;
13 import java.util.Map;
14
15 public final class JpsSerializationManagerImpl extends JpsSerializationManager {
16   @NotNull
17   @Override
18   public JpsModel loadModel(@NotNull String projectPath, @Nullable String optionsPath, boolean loadUnloadedModules)
19     throws IOException {
20     JpsModel model = JpsElementFactory.getInstance().createModel();
21     if (optionsPath != null) {
22       JpsGlobalLoader.loadGlobalSettings(model.getGlobal(), optionsPath);
23     }
24     Map<String, String> pathVariables = JpsModelSerializationDataService.computeAllPathVariables(model.getGlobal());
25     JpsProjectLoader.loadProject(model.getProject(), pathVariables, projectPath, loadUnloadedModules);
26     return model;
27   }
28
29   @NotNull
30   @Override
31   public JpsProject loadProject(@NotNull String projectPath, @NotNull Map<String, String> pathVariables) throws IOException {
32     JpsModel model = JpsElementFactory.getInstance().createModel();
33     JpsProjectLoader.loadProject(model.getProject(), pathVariables, projectPath);
34     return model.getProject();
35   }
36
37   @Override
38   public void saveGlobalSettings(@NotNull JpsGlobal global, @NotNull String optionsPath) throws IOException {
39     JpsGlobalElementSaver.saveGlobalElement(global, optionsPath);
40   }
41 }