/* * Copyright 2005-2007 WSO2, Inc. (http://wso2.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.wso2.carbon.mediation.dependency.mgt; import org.wso2.carbon.mediation.dependency.mgt.resolvers.*; import org.wso2.carbon.mediators.router.impl.RouterMediator; import org.apache.synapse.mediators.builtin.SendMediator; import org.apache.synapse.mediators.builtin.CalloutMediator; import org.apache.synapse.mediators.builtin.ValidateMediator; import org.apache.synapse.mediators.base.SequenceMediator; import org.apache.synapse.mediators.xquery.XQueryMediator; import org.apache.synapse.mediators.transform.XSLTMediator; import org.apache.synapse.mediators.eip.splitter.CloneMediator; import org.apache.synapse.mediators.eip.splitter.IterateMediator; import org.apache.synapse.mediators.bsf.ScriptMediator; import org.apache.synapse.mediators.spring.SpringMediator; import org.apache.synapse.mediators.throttle.ThrottleMediator; import org.apache.synapse.Mediator; import org.wso2.carbon.mediator.cache.CacheMediator; import java.util.Map; import java.util.HashMap; public class DependencyResolverFactory { private static final DependencyResolverFactory INSTANCE = new DependencyResolverFactory(); private Map<String,DependencyResolver> resolversMap = new HashMap<String,DependencyResolver>(); private DependencyResolverFactory() { resolversMap.put(CacheMediator.class.getName(), new CacheMediatorResolver()); resolversMap.put(CalloutMediator.class.getName(), new CalloutMediatorResolver()); resolversMap.put(CloneMediator.class.getName(), new CloneMediatorResolver()); resolversMap.put(IterateMediator.class.getName(), new IterateMediatorResolver()); resolversMap.put(RouterMediator.class.getName(), new RouterMediatorResolver()); resolversMap.put(ScriptMediator.class.getName(), new ScriptMediatorResolver()); resolversMap.put(SendMediator.class.getName(), new SendMediatorResolver()); resolversMap.put(SequenceMediator.class.getName(), new SequenceMediatorResolver()); resolversMap.put(SpringMediator.class.getName(), new SpringMediatorResolver()); resolversMap.put(ThrottleMediator.class.getName(), new ThrottleMediatorResolver()); resolversMap.put(ValidateMediator.class.getName(), new ValidateMediatorResolver()); resolversMap.put(XQueryMediator.class.getName(), new XQueryMediatorResolver()); resolversMap.put(XSLTMediator.class.getName(), new XSLTMediatorResolver()); } public static DependencyResolverFactory getInstance() { return INSTANCE; } public void addResolver(String className, DependencyResolver resolver) { if (!resolversMap.containsKey(className)) { resolversMap.put(className, resolver); } } public DependencyResolver getResolver(Mediator m) { return resolversMap.get(m.getClass().getName()); } }