package com.google.jstestdriver.idea.assertFramework; import com.intellij.lang.javascript.psi.JSFile; import com.intellij.openapi.components.ServiceManager; import org.jetbrains.annotations.Nullable; import java.util.Collections; /** * @author Sergey Simonchik */ public abstract class TestFileStructureManager { private static final Provider EMPTY_PROVIDER = new Provider() { @Override public TestFileStructurePack fetchTestFileStructurePackByJsFile(JSFile jsFile) { return new TestFileStructurePack(Collections.<AbstractTestFileStructure>emptyList()); } }; @Nullable public static TestFileStructurePack fetchTestFileStructurePackByJsFile(final JSFile jsFile) { Provider provider = ServiceManager.getService(TestFileStructureProviderImpl.class); if (provider == null) { provider = EMPTY_PROVIDER; } return provider.fetchTestFileStructurePackByJsFile(jsFile); } interface Provider { TestFileStructurePack fetchTestFileStructurePackByJsFile(final JSFile jsFile); } }