001
014
015 package com.liferay.portal.asset;
016
017 import com.liferay.portal.kernel.util.ListUtil;
018 import com.liferay.portlet.asset.AssetRendererFactoryRegistry;
019 import com.liferay.portlet.asset.model.AssetRendererFactory;
020
021 import java.util.List;
022 import java.util.Map;
023 import java.util.concurrent.ConcurrentHashMap;
024
025
029 public class AssetRendererFactoryRegistryImpl
030 implements AssetRendererFactoryRegistry {
031
032 public AssetRendererFactory getAssetRendererFactoryByClassName(
033 String className) {
034
035 return _assetRenderFactoriesMapByClassName.get(className);
036 }
037
038 public AssetRendererFactory getAssetRendererFactoryByType(String type) {
039 return _assetRenderFactoriesMapByClassType.get(type);
040 }
041
042 public List<AssetRendererFactory> getAssetRendererFactories() {
043 return ListUtil.fromCollection(
044 _assetRenderFactoriesMapByClassName.values());
045 }
046
047 public long[] getClassNameIds() {
048 long[] classNameIds = new long[
049 _assetRenderFactoriesMapByClassName.size()];
050
051 int i = 0;
052
053 for (AssetRendererFactory assetRendererFactory :
054 _assetRenderFactoriesMapByClassName.values()) {
055
056 classNameIds[i] = assetRendererFactory.getClassNameId();
057
058 i++;
059 }
060
061 return classNameIds;
062 }
063
064 public void register(AssetRendererFactory assetRendererFactory) {
065 _assetRenderFactoriesMapByClassName.put(
066 assetRendererFactory.getClassName(), assetRendererFactory);
067 _assetRenderFactoriesMapByClassType.put(
068 assetRendererFactory.getType(), assetRendererFactory);
069 }
070
071 public void unregister(AssetRendererFactory assetRendererFactory) {
072 _assetRenderFactoriesMapByClassName.remove(
073 assetRendererFactory.getClassName());
074 _assetRenderFactoriesMapByClassType.remove(
075 assetRendererFactory.getType());
076 }
077
078 private Map<String, AssetRendererFactory>
079 _assetRenderFactoriesMapByClassName =
080 new ConcurrentHashMap<String, AssetRendererFactory>();
081 private Map<String, AssetRendererFactory>
082 _assetRenderFactoriesMapByClassType =
083 new ConcurrentHashMap<String, AssetRendererFactory>();
084
085 }