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 @Override
033 public List<AssetRendererFactory> getAssetRendererFactories() {
034 return ListUtil.fromMapValues(_assetRenderFactoriesMapByClassName);
035 }
036
037 @Override
038 public AssetRendererFactory getAssetRendererFactoryByClassName(
039 String className) {
040
041 return _assetRenderFactoriesMapByClassName.get(className);
042 }
043
044 @Override
045 public AssetRendererFactory getAssetRendererFactoryByType(String type) {
046 return _assetRenderFactoriesMapByClassType.get(type);
047 }
048
049 @Override
050 public long[] getClassNameIds() {
051 long[] classNameIds = new long[
052 _assetRenderFactoriesMapByClassName.size()];
053
054 int i = 0;
055
056 for (AssetRendererFactory assetRendererFactory :
057 _assetRenderFactoriesMapByClassName.values()) {
058
059 classNameIds[i] = assetRendererFactory.getClassNameId();
060
061 i++;
062 }
063
064 return classNameIds;
065 }
066
067 @Override
068 public void register(AssetRendererFactory assetRendererFactory) {
069 _assetRenderFactoriesMapByClassName.put(
070 assetRendererFactory.getClassName(), assetRendererFactory);
071 _assetRenderFactoriesMapByClassType.put(
072 assetRendererFactory.getType(), assetRendererFactory);
073 }
074
075 @Override
076 public void unregister(AssetRendererFactory assetRendererFactory) {
077 _assetRenderFactoriesMapByClassName.remove(
078 assetRendererFactory.getClassName());
079 _assetRenderFactoriesMapByClassType.remove(
080 assetRendererFactory.getType());
081 }
082
083 private Map<String, AssetRendererFactory>
084 _assetRenderFactoriesMapByClassName =
085 new ConcurrentHashMap<String, AssetRendererFactory>();
086 private Map<String, AssetRendererFactory>
087 _assetRenderFactoriesMapByClassType =
088 new ConcurrentHashMap<String, AssetRendererFactory>();
089
090 }