package com.qianwen.core.scanner.modular.factory; import cn.hutool.core.util.StrUtil; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import com.qianwen.core.scanner.modular.model.ResourceDefinition; /* loaded from: blade-starter-scanner-9.3.0.0-SNAPSHOT.jar:org/springblade/core/scanner/modular/factory/DefaultApiResourceFactory.class */ public class DefaultApiResourceFactory implements ApiResourceFactory { private Map resourceDefinitions = new ConcurrentHashMap(); private Map> modularResourceDefinitions = new ConcurrentHashMap(); private Map resourceCodeNameDict = new HashMap(); private Map urlDefineResources = new ConcurrentHashMap(); @Override // com.qianwen.core.scanner.modular.factory.ApiResourceFactory public synchronized void registerDefinition(List apiResource) { if (apiResource != null || apiResource.size() > 0) { for (ResourceDefinition resourceDefinition : apiResource) { ResourceDefinition alreadyFlag = this.resourceDefinitions.get(resourceDefinition.getCode()); if (alreadyFlag != null) { throw new RuntimeException("资源扫描过程中存在重复资源!\n已存在资源:" + alreadyFlag + "\n新资源为: " + resourceDefinition); } this.resourceDefinitions.put(resourceDefinition.getCode(), resourceDefinition); this.urlDefineResources.put(resourceDefinition.getUrl(), resourceDefinition); Map modularResources = this.modularResourceDefinitions.get(StrUtil.toUnderlineCase(resourceDefinition.getModuleCode())); if (modularResources == null) { Map modularResources2 = new HashMap<>(); modularResources2.put(resourceDefinition.getCode(), resourceDefinition); this.modularResourceDefinitions.put(StrUtil.toUnderlineCase(resourceDefinition.getModuleCode()), modularResources2); } else { modularResources.put(resourceDefinition.getCode(), resourceDefinition); } bindResourceName(resourceDefinition.getCode(), resourceDefinition.getName()); } } } @Override // com.qianwen.core.scanner.modular.factory.ApiResourceFactory public ResourceDefinition getResource(String resourceCode) { return this.resourceDefinitions.get(resourceCode); } @Override // com.qianwen.core.scanner.modular.factory.ApiResourceFactory public List getAllResources() { Set> entries = this.resourceDefinitions.entrySet(); ArrayList resourceDefinitions = new ArrayList<>(); for (Map.Entry entry : entries) { resourceDefinitions.add(entry.getValue()); } return resourceDefinitions; } @Override // com.qianwen.core.scanner.modular.factory.ApiResourceFactory public List getResourcesByModularCode(String code) { Map stringResourceDefinitionMap = this.modularResourceDefinitions.get(code); ArrayList resourceDefinitions = new ArrayList<>(); for (String key : stringResourceDefinitionMap.keySet()) { ResourceDefinition resourceDefinition = stringResourceDefinitionMap.get(key); resourceDefinitions.add(resourceDefinition); } return resourceDefinitions; } @Override // com.qianwen.core.scanner.modular.factory.ApiResourceFactory public String getResourceName(String code) { return this.resourceCodeNameDict.get(code); } @Override // com.qianwen.core.scanner.modular.factory.ApiResourceFactory public void bindResourceName(String code, String name) { this.resourceCodeNameDict.putIfAbsent(code, name); } @Override // com.qianwen.core.scanner.modular.factory.ApiResourceFactory public Map> getModularResources() { return this.modularResourceDefinitions; } @Override // com.qianwen.core.scanner.modular.factory.ApiResourceFactory public String getResourceUrl(String code) { ResourceDefinition resourceDefinition = this.resourceDefinitions.get(code); if (resourceDefinition == null) { return null; } return resourceDefinition.getUrl(); } @Override // com.qianwen.core.scanner.modular.factory.ApiResourceFactory public ResourceDefinition getResourceByUrl(String url) { return this.urlDefineResources.get(url); } }