From 838d21909bd3a114bdfe164dbcce19310ba6912a Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 10 May 2012 18:39:27 +0200 Subject: [PATCH] moving stuff to projectModel, reducing dependencies --- .../impl/elements/LibraryPackagingElement.java | 5 +---- .../impl/ProjectLibrariesSettingsImpl.java | 3 +-- .../roots/impl/libraries/LibraryTypeServiceImpl.java | 10 ---------- .../openapi/roots/libraries/LibraryTypeService.java | 2 -- .../roots/libraries/LibraryTablesRegistrar.java | 0 .../openapi/roots/impl/RootProviderBaseImpl.java | 0 .../openapi/roots/impl/libraries/JarDirectories.java | 0 .../openapi/roots/impl/libraries/LibraryImpl.java | 4 ++-- .../openapi/roots/libraries/LibraryKind.java | 12 ++++++++++++ .../openapi/roots/libraries/LibraryProperties.java | 0 .../maven/importing/DependenciesImportingTest.java | 3 +-- 11 files changed, 17 insertions(+), 22 deletions(-) rename platform/{lang-api => projectModel-api}/src/com/intellij/openapi/roots/libraries/LibraryTablesRegistrar.java (100%) rename platform/{lang-impl => projectModel-impl}/src/com/intellij/openapi/roots/impl/RootProviderBaseImpl.java (100%) rename platform/{lang-impl => projectModel-impl}/src/com/intellij/openapi/roots/impl/libraries/JarDirectories.java (100%) rename platform/{lang-impl => projectModel-impl}/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java (99%) rename platform/{lang-impl => projectModel-impl}/src/com/intellij/openapi/roots/libraries/LibraryProperties.java (100%) diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/elements/LibraryPackagingElement.java b/java/compiler/impl/src/com/intellij/packaging/impl/elements/LibraryPackagingElement.java index b8ed003f5213..d776410599f1 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/elements/LibraryPackagingElement.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/elements/LibraryPackagingElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,13 +16,10 @@ package com.intellij.packaging.impl.elements; import com.intellij.openapi.module.Module; -import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.LibraryOrderEntry; import com.intellij.openapi.roots.OrderEntry; import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.roots.libraries.Library; -import com.intellij.openapi.roots.libraries.LibraryTable; -import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar; import com.intellij.openapi.roots.ui.configuration.ModulesProvider; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.io.FileUtil; diff --git a/platform/lang-impl/src/com/intellij/conversion/impl/ProjectLibrariesSettingsImpl.java b/platform/lang-impl/src/com/intellij/conversion/impl/ProjectLibrariesSettingsImpl.java index 08ad17309a2a..84078a185cf0 100644 --- a/platform/lang-impl/src/com/intellij/conversion/impl/ProjectLibrariesSettingsImpl.java +++ b/platform/lang-impl/src/com/intellij/conversion/impl/ProjectLibrariesSettingsImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ import com.intellij.conversion.ProjectLibrariesSettings; import com.intellij.openapi.roots.impl.libraries.LibraryImpl; import com.intellij.openapi.util.JDOMUtil; import org.jdom.Element; -import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryTypeServiceImpl.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryTypeServiceImpl.java index 51ceba62c389..93748fd81c4f 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryTypeServiceImpl.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryTypeServiceImpl.java @@ -39,16 +39,6 @@ import java.util.List; public class LibraryTypeServiceImpl extends LibraryTypeService { private static final String DEFAULT_LIBRARY_NAME = "Unnamed"; - @Nullable - public PersistentLibraryKind findKindById(@NotNull String typeId) { - for (LibraryType type : LibraryType.EP_NAME.getExtensions()) { - if (type.getKind().getKindId().equals(typeId)) { - return (PersistentLibraryKind)type.getKind(); - } - } - return null; - } - @Override public NewLibraryConfiguration createLibraryFromFiles(@NotNull LibraryRootsComponentDescriptor descriptor, @NotNull JComponent parentComponent, diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/libraries/LibraryTypeService.java b/platform/lang-impl/src/com/intellij/openapi/roots/libraries/LibraryTypeService.java index 4ec8e06ae0ca..0cb996b5a5d3 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/libraries/LibraryTypeService.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/libraries/LibraryTypeService.java @@ -32,8 +32,6 @@ public abstract class LibraryTypeService { return ServiceManager.getService(LibraryTypeService.class); } - public abstract PersistentLibraryKind findKindById(@NotNull String typeId); - @Nullable public abstract NewLibraryConfiguration createLibraryFromFiles(@NotNull LibraryRootsComponentDescriptor descriptor, @NotNull JComponent parentComponent, diff --git a/platform/lang-api/src/com/intellij/openapi/roots/libraries/LibraryTablesRegistrar.java b/platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryTablesRegistrar.java similarity index 100% rename from platform/lang-api/src/com/intellij/openapi/roots/libraries/LibraryTablesRegistrar.java rename to platform/projectModel-api/src/com/intellij/openapi/roots/libraries/LibraryTablesRegistrar.java diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/RootProviderBaseImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/RootProviderBaseImpl.java similarity index 100% rename from platform/lang-impl/src/com/intellij/openapi/roots/impl/RootProviderBaseImpl.java rename to platform/projectModel-impl/src/com/intellij/openapi/roots/impl/RootProviderBaseImpl.java diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/JarDirectories.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/JarDirectories.java similarity index 100% rename from platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/JarDirectories.java rename to platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/JarDirectories.java diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java similarity index 99% rename from platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java rename to platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java index 664d55dd06a1..c68f9aea0eb3 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryImpl.java @@ -174,7 +174,7 @@ public class LibraryImpl implements LibraryEx.ModifiableModelEx, LibraryEx { public static void collectJarFiles(final VirtualFile dir, final List container, final boolean recursively) { for (VirtualFile child : dir.getChildren()) { - final VirtualFile jarRoot = JarFileSystem.getInstance().getJarRootForLocalFile(child); + final VirtualFile jarRoot = StandardFileSystems.getJarRootForLocalFile(child); if (jarRoot != null) { container.add(jarRoot); } @@ -257,7 +257,7 @@ public class LibraryImpl implements LibraryEx.ModifiableModelEx, LibraryEx { final String typeId = element.getAttributeValue(LIBRARY_TYPE_ATTR); if (typeId == null) return; - myKind = LibraryTypeService.getInstance().findKindById(typeId); + myKind = (PersistentLibraryKind) LibraryKind.findById(typeId); if (myKind == null) return; myProperties = myKind.createDefaultProperties(); diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/libraries/LibraryKind.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/libraries/LibraryKind.java index 3ad5d96ddce2..4543be3cf9cb 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/libraries/LibraryKind.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/libraries/LibraryKind.java @@ -18,17 +18,25 @@ package com.intellij.openapi.roots.libraries; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; +import java.util.HashMap; +import java.util.Map; + /** * @author nik */ public class LibraryKind { private final String myKindId; + private static final Map ourAllKinds = new HashMap(); /** * @param kindId must be unique among all {@link com.intellij.openapi.roots.libraries.LibraryType} and {@link com.intellij.openapi.roots.libraries.LibraryPresentationProvider} implementations */ public LibraryKind(@NotNull @NonNls String kindId) { myKindId = kindId; + if (ourAllKinds.containsKey(kindId)) { + throw new IllegalArgumentException("Kind " + kindId + " is not unique"); + } + ourAllKinds.put(kindId, this); } public final String getKindId() { @@ -47,4 +55,8 @@ public class LibraryKind { public static LibraryKind create(@NotNull @NonNls String kindId) { return new LibraryKind(kindId); } + + public static LibraryKind findById(String kindId) { + return ourAllKinds.get(kindId); + } } diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/libraries/LibraryProperties.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/libraries/LibraryProperties.java similarity index 100% rename from platform/lang-impl/src/com/intellij/openapi/roots/libraries/LibraryProperties.java rename to platform/projectModel-impl/src/com/intellij/openapi/roots/libraries/LibraryProperties.java diff --git a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesImportingTest.java b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesImportingTest.java index d5ac1ec9cb63..1b3dcaa57fee 100644 --- a/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesImportingTest.java +++ b/plugins/maven/src/test/java/org/jetbrains/idea/maven/importing/DependenciesImportingTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,7 +24,6 @@ import com.intellij.openapi.roots.impl.libraries.ProjectLibraryTable; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.libraries.LibraryTable; import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar; -import com.intellij.openapi.util.Computable; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.idea.maven.MavenCustomRepositoryHelper;