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