IJPL-159596 refactor ResourceRegistrarImpl

GitOrigin-RevId: ba7c9938aeeff19f9ccbffa0c9d25016ee3bc9c8
This commit is contained in:
Vladimir Krivosheev
2024-08-04 15:35:52 +02:00
committed by intellij-monorepo-bot
parent 61920f139b
commit ed33bc8ba9
3 changed files with 47 additions and 54 deletions

View File

@@ -1,18 +1,18 @@
// Copyright 2000-2021 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. // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.javaee; package com.intellij.javaee;
import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
/** /**
* @author Dmitry Avdeev
* @see StandardResourceProvider * @see StandardResourceProvider
*/ */
public interface ResourceRegistrar { public interface ResourceRegistrar {
void addStdResource(@NonNls String resource, @NonNls String fileName); void addStdResource(@NotNull @NonNls String resource, @NonNls String fileName);
void addStdResource(@NonNls String resource, @NonNls String fileName, Class<?> klass); void addStdResource(@NotNull @NonNls String resource, @NonNls String fileName, Class<?> klass);
void addStdResource(@NonNls String resource, @NonNls String version, @NonNls String fileName, Class<?> klass); void addStdResource(@NotNull @NonNls String resource, @NonNls String version, @NonNls String fileName, Class<?> klass);
void addIgnoredResource(@NonNls String url); void addIgnoredResource(@NotNull @NonNls String url);
} }

View File

@@ -134,8 +134,8 @@ open class ExternalResourceManagerExImpl : ExternalResourceManagerEx(), Persiste
} }
standardIgnoredResources.clear() standardIgnoredResources.clear()
standardIgnoredResources.addAll(registrar.ignored) standardIgnoredResources.addAll(registrar.getIgnoredResources())
return registrar.resources return registrar.getResources()
} }
private fun dropCache() { private fun dropCache() {

View File

@@ -1,68 +1,61 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. // Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.javaee; package com.intellij.javaee
import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NonNls
import org.jetbrains.annotations.NotNull; import java.util.ArrayList
import org.jetbrains.annotations.Nullable; import java.util.HashMap
import java.util.ArrayList; class ResourceRegistrarImpl : ResourceRegistrar {
import java.util.HashMap; private val resources = HashMap<String, MutableMap<String, ExternalResourceManagerExImpl.Resource>>()
import java.util.List; private val ignored = ArrayList<String>()
import java.util.Map;
/** internal fun getIgnoredResources(): List<String> = ignored
* @author Dmitry Avdeev
*/
public final class ResourceRegistrarImpl implements ResourceRegistrar {
private final Map<String, Map<String, ExternalResourceManagerExImpl.Resource>> resources = new HashMap<>();
private final List<String> ignored = new ArrayList<>();
@Override override fun addStdResource(resource: @NonNls String, fileName: @NonNls String) {
public void addStdResource(@NonNls String resource, @NonNls String fileName) { addStdResource(resource = resource, version = null, fileName = fileName, aClass = javaClass)
addStdResource(resource, null, fileName, getClass());
} }
@Override override fun addStdResource(resource: @NonNls String, fileName: @NonNls String, aClass: Class<*>?) {
public void addStdResource(@NonNls String resource, @NonNls String fileName, Class klass) { addStdResource(resource = resource, version = null, fileName = fileName, aClass = aClass)
addStdResource(resource, null, fileName, klass);
} }
public void addStdResource(@NonNls String resource, @NonNls String version, @NonNls String fileName, @Nullable Class<?> klass, @Nullable ClassLoader classLoader) { fun addStdResource(
Map<String, ExternalResourceManagerExImpl.Resource> map = ExternalResourceManagerExImpl.Companion.getOrCreateMap(resources, version); resource: @NonNls String,
map.put(resource, new ExternalResourceManagerExImpl.Resource(fileName, klass, classLoader)); version: @NonNls String?,
fileName: @NonNls String,
aClass: Class<*>?,
classLoader: ClassLoader?
) {
ExternalResourceManagerExImpl.getOrCreateMap<ExternalResourceManagerExImpl.Resource>(resources, version)
.put(resource, ExternalResourceManagerExImpl.Resource(file = fileName, aClass = aClass, classLoader = classLoader))
} }
@Override override fun addStdResource(resource: @NonNls String, version: @NonNls String?, fileName: @NonNls String, aClass: Class<*>?) {
public void addStdResource(@NonNls String resource, @Nullable @NonNls String version, @NonNls String fileName, Class klass) { addStdResource(resource = resource, version = version, fileName = fileName, aClass = aClass, classLoader = null)
addStdResource(resource, version, fileName, klass, null);
} }
@Override override fun addIgnoredResource(url: @NonNls String) {
public void addIgnoredResource(@NonNls String url) { ignored.add(url)
ignored.add(url);
} }
public void addInternalResource(@NonNls String resource, @NonNls String fileName) { fun addInternalResource(resource: @NonNls String, fileName: @NonNls String?) {
addInternalResource(resource, null, fileName, getClass()); addInternalResource(resource = resource, version = null, fileName = fileName, aClass = javaClass)
} }
public void addInternalResource(@NonNls String resource, @NonNls String fileName, Class<?> clazz) { fun addInternalResource(resource: @NonNls String, fileName: @NonNls String?, aClass: Class<*>?) {
addInternalResource(resource, null, fileName, clazz); addInternalResource(resource = resource, version = null, fileName = fileName, aClass = aClass)
} }
public void addInternalResource(@NonNls String resource, @NonNls String version, @NonNls String fileName) { @JvmOverloads
addInternalResource(resource, version, fileName, getClass()); fun addInternalResource(resource: @NonNls String, version: @NonNls String?, fileName: @NonNls String?, aClass: Class<*>? = javaClass) {
addStdResource(
resource = resource,
version = version,
fileName = ExternalResourceManagerEx.STANDARD_SCHEMAS + fileName,
aClass = aClass,
classLoader = null,
)
} }
public void addInternalResource(@NonNls String resource, @Nullable @NonNls String version, @NonNls String fileName, @Nullable Class<?> clazz) { internal fun getResources(): Map<String, MutableMap<String, ExternalResourceManagerExImpl.Resource>> = resources
addStdResource(resource, version, ExternalResourceManagerEx.STANDARD_SCHEMAS + fileName, clazz, null);
}
public @NotNull Map<String, Map<String, ExternalResourceManagerExImpl.Resource>> getResources() {
return resources;
}
public @NotNull List<String> getIgnored() {
return ignored;
}
} }