Fragment providers added on higher level.

This commit is contained in:
Evgeny Gerashchenko
2013-11-28 18:23:01 +04:00
parent 3f790f5f0c
commit 73114d7e9c
24 changed files with 122 additions and 65 deletions
@@ -86,8 +86,6 @@ public final class JavaPackageFragmentProvider implements PackageFragmentProvide
@Inject
public void setModule(ModuleDescriptor module) {
this.module = module;
// TODO 1 hacky
((ModuleDescriptorImpl) module).addFragmentProvider(this);
}
@NotNull
@@ -17,6 +17,7 @@
package org.jetbrains.jet.lang.descriptors;
import com.google.common.collect.Lists;
import com.intellij.openapi.diagnostic.Logger;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
@@ -33,6 +34,8 @@ import java.util.Collections;
import java.util.List;
public class ModuleDescriptorImpl extends DeclarationDescriptorImpl implements ModuleDescriptor {
private static final Logger LOG = Logger.getInstance(ModuleDescriptorImpl.class);
private final List<PackageFragmentProvider> fragmentProviders = Lists.newArrayList();
private final CompositePackageFragmentProvider packageFragmentProvider = new CompositePackageFragmentProvider(fragmentProviders);
private final List<ImportPath> defaultImports;
@@ -52,6 +55,9 @@ public class ModuleDescriptorImpl extends DeclarationDescriptorImpl implements M
}
public void addFragmentProvider(@NotNull PackageFragmentProvider provider) {
if (fragmentProviders.contains(provider)) {
LOG.error("Trying to add already present fragment provider: " + provider);
}
fragmentProviders.add(provider);
}