001/**
002 * Copyright 2005-2018 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 */
016package org.kuali.rice.krad.service;
017
018import org.kuali.rice.core.api.CoreConstants;
019import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader;
020import org.kuali.rice.krad.lookup.Lookupable;
021import org.kuali.rice.krad.messages.MessageService;
022import org.kuali.rice.krad.uif.lifecycle.ViewLifecyclePhaseBuilder;
023import org.kuali.rice.krad.uif.service.AttributeQueryService;
024import org.kuali.rice.krad.uif.service.UifDefaultingService;
025import org.kuali.rice.krad.uif.service.ViewDictionaryService;
026import org.kuali.rice.krad.uif.service.ViewService;
027import org.kuali.rice.krad.uif.view.ExpressionEvaluatorFactory;
028import org.kuali.rice.krad.web.service.ModelAndViewService;
029import org.kuali.rice.krad.workflow.service.WorkflowDocumentService;
030import org.springframework.web.servlet.ModelAndView;
031
032/**
033 * Service locator for the KRAD Web module
034 *
035 * @author Kuali Rice Team (rice.collab@kuali.org)
036 */
037public class KRADServiceLocatorWeb {
038
039    public static final class Namespaces {
040        public static final String MODULE_NAME = "krad";
041        public static final String KRAD_NAMESPACE_PREFIX =
042                CoreConstants.Namespaces.ROOT_NAMESPACE_PREFIX + "/" + MODULE_NAME;
043
044        /**
045         * Namespace for the krad module which is compatible with Kuali Rice 2.0.x.
046         */
047        public static final String KRAD_NAMESPACE_2_0 =
048                KRAD_NAMESPACE_PREFIX + "/" + CoreConstants.Versions.VERSION_2_0;
049
050    }
051
052    public static final String DATA_DICTIONARY_REMOTE_FIELD_SERVICE = "dataDictionaryRemoteFieldService";
053    public static final String DATA_DICTIONARY_COMPONENT_PUBLISHER_SERVICE = "dataDictionaryComponentPublisherService";
054    public static final String DOCUMENT_DICTIONARY_SERVICE = "documentDictionaryService";
055    public static final String DATA_OBJECT_AUTHORIZATION_SERVICE = "dataObjectAuthorizationService";
056    public static final String MAINTENANCE_DOCUMENT_SERVICE = "maintenanceDocumentService";
057    public static final String WORKFLOW_DOCUMENT_SERVICE = "workflowDocumentService";
058    public static final String EXCEPTION_INCIDENT_REPORT_SERVICE = "kradExceptionIncidentService";
059    public static final String FEEDBACK_REPORT_SERVICE = "kradFeedbackService";
060    /* KULRICE-12304: Added a new locator for the new MaintainableXMLConversionService */
061    public static final String MAINTAINABLE_XML_CONVERSION_SERVICE = "kradMaintainableXMLConversionService";
062
063    public static final String DATA_DICTIONARY_SERVICE = "dataDictionaryService";
064    public static final String PESSIMISTIC_LOCK_SERVICE = "pessimisticLockService";
065    public static final String KUALI_MODULE_SERVICE = "kualiModuleService";
066    public static final String KUALI_RULE_SERVICE = "kualiRuleService";
067    public static final String DOCUMENT_SERVICE = "documentService";
068    public static final String DOCUMENT_HEADER_SERVICE = "documentHeaderService";
069    public static final String DOCUMENT_SERIALIZER_SERVICE = "documentSerializerService";
070    public static final String LOOKUP_SERVICE = "lookupService";
071    public static final String DICTIONARY_VALIDATION_SERVICE = "dictionaryValidationService";
072    public static final String DEFAULT_INACTIVATION_BLOCKING_DETECTION_SERVICE = "inactivationBlockingDetectionService";
073    public static final String VIEW_SERVICE = "viewService";
074    public static final String VIEW_DICTIONARY_SERVICE = "viewDictionaryService";
075    public static final String VIEW_VALIDATION_SERVICE = "viewValidationService";
076    public static final String ATTRIBUTE_QUERY_SERVICE = "attributeQueryService";
077    public static final String MESSAGE_SERVICE = "messageService";
078    public static final String POST_PROCESSOR_SERVICE = "postProcessorService";
079    public static final String INACTIVATION_BLOCKING_DISPLAY_SERVICE = "inactivationBlockingDisplayService";
080    public static final String LEGACY_DATA_ADAPTER = "legacyDataAdapter";
081    public static final String UIF_DEFAULTING_SERVICE = "uifDefaultingService";
082    public static final String EXPRESSION_EVALUATOR_FACTORY = "expressionEvaluatorFactory";
083    public static final String VIEW_LIFECYCLE_PHASE_BUILDER = "viewLifecyclePhaseBuilder";
084    public static final String MODEL_AND_VIEW_SERVICE = "modelAndViewService";
085    public static final String CSRF_SERVICE = "csrfService";
086
087    public static <T extends Object> T getService(String serviceName) {
088        return GlobalResourceLoader.<T>getService(serviceName);
089    }
090
091    public static DocumentDictionaryService getDocumentDictionaryService() {
092        return getService(DOCUMENT_DICTIONARY_SERVICE);
093    }
094
095    public static DataObjectAuthorizationService getDataObjectAuthorizationService() {
096        return getService(DATA_OBJECT_AUTHORIZATION_SERVICE);
097    }
098
099    public static MaintenanceDocumentService getMaintenanceDocumentService() {
100        return getService(MAINTENANCE_DOCUMENT_SERVICE);
101    }
102
103    public static WorkflowDocumentService getWorkflowDocumentService() {
104        return getService(WORKFLOW_DOCUMENT_SERVICE);
105    }
106
107    public static DocumentHeaderService getDocumentHeaderService() {
108        return getService(DOCUMENT_HEADER_SERVICE);
109    }
110
111    public static final KualiExceptionIncidentService getKualiExceptionIncidentService() {
112        return getService(EXCEPTION_INCIDENT_REPORT_SERVICE);
113    }
114
115    public static final KualiFeedbackService getKualiFeedbackService() {
116        return getService(FEEDBACK_REPORT_SERVICE);
117    }
118    /* KULRICE-12304:Added a new locator for the new MaintainableXMLConversionService */
119    public static final MaintainableXMLConversionService getMaintainableXMLConversionService() {
120        return getService(MAINTAINABLE_XML_CONVERSION_SERVICE);
121    }
122
123    public static DataDictionaryService getDataDictionaryService() {
124        return getService(DATA_DICTIONARY_SERVICE);
125    }
126
127    public static PessimisticLockService getPessimisticLockService() {
128        return getService(PESSIMISTIC_LOCK_SERVICE);
129    }
130
131    public static Lookupable getLookupable(String lookupableName) {
132        return getService(lookupableName);
133    }
134
135    public static KualiModuleService getKualiModuleService() {
136        return getService(KUALI_MODULE_SERVICE);
137    }
138
139    public static KualiRuleService getKualiRuleService() {
140        return getService(KUALI_RULE_SERVICE);
141    }
142
143    public static DocumentService getDocumentService() {
144        return getService(DOCUMENT_SERVICE);
145    }
146
147    public static DocumentSerializerService getDocumentSerializerService() {
148        return (DocumentSerializerService) getService(DOCUMENT_SERIALIZER_SERVICE);
149    }
150
151    public static LookupService getLookupService() {
152        return (LookupService) getService(LOOKUP_SERVICE);
153    }
154
155    public static DictionaryValidationService getDictionaryValidationService() {
156        return (DictionaryValidationService) getService(DICTIONARY_VALIDATION_SERVICE);
157    }
158
159    public static InactivationBlockingDetectionService getInactivationBlockingDetectionService(String serviceName) {
160        return (InactivationBlockingDetectionService) getService(serviceName);
161    }
162
163    public static ViewService getViewService() {
164        return (ViewService) getService(VIEW_SERVICE);
165    }
166
167    public static ViewDictionaryService getViewDictionaryService() {
168        return (ViewDictionaryService) getService(VIEW_DICTIONARY_SERVICE);
169    }
170
171    public static ViewValidationService getViewValidationService() {
172        return (ViewValidationService) getService(VIEW_VALIDATION_SERVICE);
173    }
174
175    public static AttributeQueryService getAttributeQueryService() {
176        return (AttributeQueryService) getService(ATTRIBUTE_QUERY_SERVICE);
177    }
178
179    public static ModelAndViewService getModelAndViewService() {
180        return (ModelAndViewService) getService(MODEL_AND_VIEW_SERVICE);
181    }
182
183    public static DataDictionaryRemoteFieldService getDataDictionaryRemoteFieldService() {
184        return (DataDictionaryRemoteFieldService) getService(DATA_DICTIONARY_REMOTE_FIELD_SERVICE);
185    }
186
187    public static MessageService getMessageService() {
188        return getService(MESSAGE_SERVICE);
189    }
190
191    public static DataDictionaryComponentPublisherService getDataDictionaryComponentPublisherService() {
192        return getService(DATA_DICTIONARY_COMPONENT_PUBLISHER_SERVICE);
193    }
194
195    public static PostProcessorService getPostProcessorService() {
196        return (PostProcessorService) getService(POST_PROCESSOR_SERVICE);
197    }
198
199    public static InactivationBlockingDisplayService getInactivationBlockingDisplayService() {
200        return (InactivationBlockingDisplayService) getService(INACTIVATION_BLOCKING_DISPLAY_SERVICE);
201    }
202
203    public static UifDefaultingService getUifDefaultingService() {
204        return getService(UIF_DEFAULTING_SERVICE);
205    }
206
207    public static CsrfService getCsrfService() {
208        return getService(CSRF_SERVICE);
209    }
210
211    /**
212     * Gets a globally defined instance of {@link org.kuali.rice.krad.uif.view.ExpressionEvaluatorFactory}.
213     *
214     * @return globally defined expression evaluator factory
215     */
216    public static ExpressionEvaluatorFactory getExpressionEvaluatorFactory() {
217        return getService(EXPRESSION_EVALUATOR_FACTORY);
218    }
219
220    /**
221     * Returns a {@link ViewLifecyclePhaseBuilder} for defining lifecycle phases.
222     * 
223     * @return ViewLifecyclePhaseBuilder
224     */
225    public static ViewLifecyclePhaseBuilder getViewLifecyclePhaseBuilder() {
226        return getService(VIEW_LIFECYCLE_PHASE_BUILDER);
227    }
228    
229    /**
230     * Returns the legacy data adapter for handling legacy KNS and KRAD data and metadata.
231     *
232     * @return the legacy data adapter
233     * @deprecated application code should never use this! Always use KRAD code directly.
234     */
235    @Deprecated
236    public static LegacyDataAdapter getLegacyDataAdapter() {
237        return getService(LEGACY_DATA_ADAPTER);
238    }
239
240}