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