Files
2021-01-15 22:21:07 +00:00

108 lines
3.1 KiB
Java

// Copyright 2000-2018 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.
package com.intellij.facet.mock;
import com.intellij.facet.Facet;
import com.intellij.facet.impl.ui.FacetEditorContextBase;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ModifiableRootModel;
import com.intellij.openapi.roots.ModuleRootManager;
import com.intellij.openapi.roots.ModuleRootModel;
import com.intellij.openapi.roots.libraries.Library;
import com.intellij.openapi.roots.ui.configuration.DefaultModulesProvider;
import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
import com.intellij.openapi.roots.ui.configuration.artifacts.ArtifactsStructureConfigurableContext;
import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainer;
import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContainerFactory;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class MockFacetEditorContext extends FacetEditorContextBase {
private final Project myProject;
private boolean myNewFacet;
private final Facet myFacet;
private final Module myModule;
public MockFacetEditorContext(@NotNull Facet facet) {
this(facet.getModule(), facet);
}
public MockFacetEditorContext(@NotNull Module module, Facet facet) {
this(module.getProject(), module, facet);
}
public MockFacetEditorContext(@NotNull Project project, Module module, Facet facet) {
this(new DefaultModulesProvider(project), project, module, facet);
}
@Override
public LibrariesContainer getContainer() {
return LibrariesContainerFactory.createContainer(myModule);
}
private MockFacetEditorContext(final ModulesProvider modulesProvider, Project project, Module module, Facet facet) {
super(facet, null, null, modulesProvider, null, null);
myFacet = facet;
myModule = module;
myProject = project;
}
public void setNewFacet(final boolean newFacet) {
myNewFacet = newFacet;
}
@Override
@NotNull
public Project getProject() {
return myProject;
}
@Override
public boolean isNewFacet() {
return myNewFacet;
}
@Override
@NotNull
public Facet getFacet() {
return myFacet;
}
@Override
@NotNull
public Module getModule() {
return myModule;
}
@Override
@Nullable
public Facet getParentFacet() {
return null;
}
@Override
@NotNull
public ModifiableRootModel getModifiableRootModel() {
throw new UnsupportedOperationException();
}
@Override
public Library createProjectLibrary(final String name, final VirtualFile[] roots, final VirtualFile[] sources) {
throw new UnsupportedOperationException();
}
@NotNull
@Override
public ArtifactsStructureConfigurableContext getArtifactsStructureContext() {
throw new UnsupportedOperationException("'getArtifactsStructureContext' not implemented in " + getClass().getName());
}
@Override
@NotNull
public ModuleRootModel getRootModel() {
return ModuleRootManager.getInstance(myModule);
}
}