[workspace model] provide implementation of FacetManager which stores data in workspa...
[idea/community.git] / java / idea-ui / testSrc / com / intellij / facet / mock / MockFacet.java
1 // 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.
2
3 package com.intellij.facet.mock;
4
5 import com.intellij.facet.Facet;
6 import com.intellij.facet.FacetManager;
7 import com.intellij.facet.FacetRootsProvider;
8 import com.intellij.openapi.module.Module;
9 import com.intellij.openapi.vfs.VirtualFile;
10 import org.jetbrains.annotations.NotNull;
11
12 import java.util.Collection;
13
14 /**
15  * @author nik
16 */
17 public class MockFacet extends Facet<MockFacetConfiguration> implements FacetRootsProvider {
18   private boolean myInitialized;
19   private boolean myDisposed;
20   private boolean myConfigured;
21
22   public MockFacet(@NotNull final Module module, final String name) {
23     this(module, name, new MockFacetConfiguration());
24   }
25
26   public MockFacet(final Module module, String name, final MockFacetConfiguration configuration) {
27     super(MockFacetType.getInstance(), module, name, configuration, null);
28   }
29
30   @Override
31   public void initFacet() {
32     myInitialized = true;
33   }
34
35   @Override
36   public void disposeFacet() {
37     myDisposed = true;
38   }
39
40   public boolean isConfigured() {
41     return myConfigured;
42   }
43
44   public void configure() {
45     myConfigured = true;
46   }
47
48   public boolean isInitialized() {
49     return myInitialized;
50   }
51
52   @Override
53   public boolean isDisposed() {
54     return myDisposed;
55   }
56
57   public void addRoot(VirtualFile root) {
58     getConfiguration().addRoot(root);
59     fireFacetChangedEvent();
60   }
61
62   private void fireFacetChangedEvent() {
63     FacetManager.getInstance(getModule()).facetConfigurationChanged(this);
64   }
65
66   public void removeRoot(VirtualFile root) {
67     getConfiguration().removeRoot(root);
68     fireFacetChangedEvent();
69   }
70
71   @Override
72   @NotNull
73   public Collection<VirtualFile> getFacetRoots() {
74     return getConfiguration().getRoots();
75   }
76 }