001
014
015 package com.liferay.portal.lar;
016
017 import com.liferay.portal.kernel.lar.StagedModelDataHandler;
018 import com.liferay.portal.kernel.lar.StagedModelDataHandlerRegistry;
019 import com.liferay.portal.kernel.log.Log;
020 import com.liferay.portal.kernel.log.LogFactoryUtil;
021 import com.liferay.portal.kernel.security.pacl.DoPrivileged;
022 import com.liferay.portal.kernel.util.ListUtil;
023
024 import java.util.HashMap;
025 import java.util.List;
026 import java.util.Map;
027
028
035 @DoPrivileged
036 public class StagedModelDataHandlerRegistryImpl
037 implements StagedModelDataHandlerRegistry {
038
039 public StagedModelDataHandler<?> getStagedModelDataHandler(
040 String className) {
041
042 return _stagedModelDataHandlers.get(className);
043 }
044
045 public List<StagedModelDataHandler<?>> getStagedModelDataHandlers() {
046 return ListUtil.fromMapValues(_stagedModelDataHandlers);
047 }
048
049 public void register(StagedModelDataHandler<?> stagedModelDataHandler) {
050 for (String className : stagedModelDataHandler.getClassNames()) {
051 if (_stagedModelDataHandlers.containsKey(className)) {
052 if (_log.isWarnEnabled()) {
053 _log.warn("Duplicate class " + className);
054 }
055
056 continue;
057 }
058
059 _stagedModelDataHandlers.put(className, stagedModelDataHandler);
060 }
061 }
062
063 public void unregister(StagedModelDataHandler<?> stagedModelDataHandler) {
064 for (String className : stagedModelDataHandler.getClassNames()) {
065 _stagedModelDataHandlers.remove(className);
066 }
067 }
068
069 private static Log _log = LogFactoryUtil.getLog(
070 StagedModelDataHandlerRegistryImpl.class);
071
072 private Map<String, StagedModelDataHandler<?>> _stagedModelDataHandlers =
073 new HashMap<String, StagedModelDataHandler<?>>();
074
075 }