001package org.nuxeo.template.service; 002 003import java.util.HashMap; 004import java.util.Map; 005 006import org.nuxeo.runtime.model.ContributionFragmentRegistry; 007import org.nuxeo.template.api.descriptor.ContextExtensionFactoryDescriptor; 008 009public class ContextFactoryRegistry extends ContributionFragmentRegistry<ContextExtensionFactoryDescriptor> { 010 011 protected Map<String, ContextExtensionFactoryDescriptor> factories = new HashMap<String, ContextExtensionFactoryDescriptor>(); 012 013 @Override 014 public ContextExtensionFactoryDescriptor clone(ContextExtensionFactoryDescriptor desc) { 015 return desc.clone(); 016 } 017 018 @Override 019 public void contributionRemoved(String id, ContextExtensionFactoryDescriptor desc) { 020 factories.remove(id); 021 } 022 023 @Override 024 public void contributionUpdated(String id, ContextExtensionFactoryDescriptor mergedDesc, 025 ContextExtensionFactoryDescriptor orgDesc) { 026 027 if (mergedDesc == null || !mergedDesc.isEnabled()) { 028 factories.remove(id); 029 } else { 030 factories.put(id, mergedDesc); 031 } 032 } 033 034 @Override 035 public String getContributionId(ContextExtensionFactoryDescriptor desc) { 036 return desc.getName(); 037 } 038 039 @Override 040 public void merge(ContextExtensionFactoryDescriptor src, ContextExtensionFactoryDescriptor dest) { 041 dest.merge(src); 042 } 043 044 public Map<String, ContextExtensionFactoryDescriptor> getExtensionFactories() { 045 return factories; 046 } 047}