001    /**
002     * Copyright 2005-2012 The Kuali Foundation
003     *
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.opensource.org/licenses/ecl2.php
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.kuali.rice.kew.framework;
017    
018    import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader;
019    import org.kuali.rice.kew.api.KewApiConstants;
020    import org.kuali.rice.kew.framework.actionlist.ActionListCustomizationHandlerService;
021    import org.kuali.rice.kew.framework.document.search.DocumentSearchCustomizationHandlerService;
022    import org.kuali.rice.kew.framework.document.security.DocumentSecurityHandlerService;
023    import org.kuali.rice.kew.framework.rule.attribute.WorkflowRuleAttributeHandlerService;
024    import org.kuali.rice.kew.framework.validation.RuleValidationAttributeExporterService;
025    import org.kuali.rice.ksb.api.KsbApiServiceLocator;
026    
027    import javax.xml.namespace.QName;
028    
029    /**
030     * A static service locator which aids in locating the various KEW framework services.
031     */
032    public class KewFrameworkServiceLocator {
033    
034        public static final String DOCUMENT_SEARCH_CUSTOMIZATION_HANDLER_SERVICE = "documentSearchCustomizationHandlerService";
035        public static final String DOCUMENT_SECURITY_HANDLER_SERVICE = "documentSecurityHandlerService";
036        public static final String RULE_VALIDATION_ATTRIBUTE_EXPORTER_SERVICE = "ruleValidationAttributeExporterService";
037        public static final String ACTION_LIST_CUSTOMIZATION_HANDLER_SERVICE = "actionListCustomizationHandler";
038        public static final String WORKFLOW_RULE_ATTRIBUTE_HANDLER_SERVICE = "workflowRuleAttributeHandlerService";
039    
040    
041        static <T> T getService(String serviceName) {
042            return GlobalResourceLoader.<T>getService(serviceName);
043        }
044    
045        static <T> T getServiceOnBus(String serviceName, String applicationId) {
046            return (T)KsbApiServiceLocator.getServiceBus().getService(new QName(KewApiConstants.Namespaces.KEW_NAMESPACE_2_0, serviceName), applicationId);
047        }
048    
049        public static DocumentSearchCustomizationHandlerService getDocumentSearchCustomizationHandlerService() {
050            return getDocumentSearchCustomizationHandlerService(null);
051        }
052    
053        public static DocumentSearchCustomizationHandlerService getDocumentSearchCustomizationHandlerService(
054                String applicationId) {
055            return getServiceOnBus(DOCUMENT_SEARCH_CUSTOMIZATION_HANDLER_SERVICE, applicationId);
056        }
057    
058        public static DocumentSecurityHandlerService getDocumentSecurityHandlerService() {
059            return getDocumentSecurityHandlerService(null);
060        }
061    
062        public static DocumentSecurityHandlerService getDocumentSecurityHandlerService(
063                String applicationId) {
064            return getServiceOnBus(DOCUMENT_SECURITY_HANDLER_SERVICE, applicationId);
065        }
066    
067        public static RuleValidationAttributeExporterService getRuleValidationAttributeExporterService() {
068            return getRuleValidationAttributeExporterService(null);
069        }
070    
071        public static RuleValidationAttributeExporterService getRuleValidationAttributeExporterService(String applicationId) {
072            return getServiceOnBus(RULE_VALIDATION_ATTRIBUTE_EXPORTER_SERVICE, applicationId);
073        }
074    
075        public static WorkflowRuleAttributeHandlerService getWorkflowRuleAttributeHandlerService() {
076            return getWorkflowRuleAttributeHandlerService(null);
077        }
078    
079        public static WorkflowRuleAttributeHandlerService getWorkflowRuleAttributeHandlerService(String applicationId) {
080            return getServiceOnBus(WORKFLOW_RULE_ATTRIBUTE_HANDLER_SERVICE, applicationId);
081        }
082        
083        public static ActionListCustomizationHandlerService getActionListCustomizationHandlerService(
084                String applicationId) {
085            return getServiceOnBus(ACTION_LIST_CUSTOMIZATION_HANDLER_SERVICE, applicationId);
086        }
087    }