Files
openide/java/idea-ui/testSrc/com/intellij/facet/mock/MockSubFacetDetector.java
Vladimir Krivosheev c2b2520994 new plugin descriptor format - full support on all levels
GitOrigin-RevId: 718c9401f22900c30029ec62c23f60f6f22278ee
2021-05-27 20:17:14 +00:00

64 lines
2.4 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.FacetConfiguration;
import com.intellij.facet.FacetType;
import com.intellij.framework.detection.FacetBasedFrameworkDetector;
import com.intellij.framework.detection.FileContentPattern;
import com.intellij.openapi.extensions.InternalIgnoreDependencyViolation;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.patterns.ElementPattern;
import com.intellij.util.indexing.FileContent;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import static com.intellij.patterns.StandardPatterns.string;
@InternalIgnoreDependencyViolation
public final class MockSubFacetDetector extends FacetBasedFrameworkDetector<Facet, MockFacetConfiguration> {
public MockSubFacetDetector() {
super("mock-sub-facet-detector");
}
@NotNull
@Override
public FacetType<Facet, MockFacetConfiguration> getFacetType() {
return MockSubFacetType.getInstance();
}
@NotNull
@Override
public List<Pair<MockFacetConfiguration, Collection<VirtualFile>>> createConfigurations(@NotNull Collection<VirtualFile> files,
@NotNull Collection<MockFacetConfiguration> existentFacetConfigurations) {
return MockFacetDetector.doDetect(files, existentFacetConfigurations);
}
@NotNull
@Override
public FileType getFileType() {
return StdFileTypes.XML;
}
@Override
public boolean isSuitableUnderlyingFacetConfiguration(FacetConfiguration underlying,
MockFacetConfiguration configuration,
Set<VirtualFile> files) {
return underlying instanceof MockFacetConfiguration && ("sub-" + ((MockFacetConfiguration)underlying).getData()).equals(configuration.getData());
}
@NotNull
@Override
public ElementPattern<FileContent> createSuitableFilePattern() {
return FileContentPattern.fileContent()
.withName(string().startsWith("sub-my-config"))
.xmlWithRootTag(MockFacetDetector.ROOT_TAG_NAME);
}
}