/* * Copyright 2003-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package jetbrains.mps.project; import jetbrains.mps.project.persistence.ProjectDescriptorPersistence; import jetbrains.mps.project.structure.project.ProjectDescriptor; import jetbrains.mps.util.MacroHelper; import org.jdom.Element; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.File; /** * Project data source backed up by the xml persisted properties * * Created by apyshkin on 11/2/15. */ public class ElementProjectDataSource implements ProjectDataSource { @Nullable private final Element myElement; @NotNull private final File myProjectFile; @NotNull private final MacroHelper myMacroHelper; public ElementProjectDataSource(@Nullable Element element, @NotNull File projectFile) { this(element, projectFile, new MacroHelper.MacroNoHelper()); } public ElementProjectDataSource(@Nullable Element element, @NotNull File projectFile, @NotNull MacroHelper macroHelper) { myElement = element; myProjectFile = projectFile; myMacroHelper = macroHelper; } @NotNull @Override public ProjectDescriptor loadDescriptor() { return new ProjectDescriptorPersistence(myProjectFile, myMacroHelper).load(myElement); } }