001 /** 002 * Copyright 2012 The Kuali Foundation Licensed under the Educational Community License, Version 2.0 (the "License"); you may not 003 * use this file except in compliance with the License. You may obtain a copy of the License at 004 * 005 * http://www.osedu.org/licenses/ECL-2.0 006 * 007 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" 008 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language 009 * governing permissions and limitations under the License. 010 * 011 */ 012 package org.kuali.student.enrollment.state.service.impl; 013 014 import java.util.Map; 015 import javax.xml.namespace.QName; 016 import org.apache.log4j.Logger; 017 import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader; 018 import org.kuali.rice.krad.inquiry.InquirableImpl; 019 import org.kuali.student.enrollment.common.util.ContextBuilder; 020 import org.kuali.student.r2.common.dto.ContextInfo; 021 import org.kuali.student.r2.common.exceptions.DoesNotExistException; 022 import org.kuali.student.r2.common.exceptions.InvalidParameterException; 023 import org.kuali.student.r2.common.exceptions.MissingParameterException; 024 import org.kuali.student.r2.common.exceptions.OperationFailedException; 025 import org.kuali.student.r2.common.exceptions.PermissionDeniedException; 026 import org.kuali.student.r2.core.constants.StateServiceConstants; 027 import org.kuali.student.r2.core.class1.state.dto.StateInfo; 028 import org.kuali.student.r2.core.class1.state.service.StateService; 029 030 /** 031 * This class 032 * 033 * @author Kuali Student Team 034 */ 035 public class StateInfoAdminInquirableImpl 036 extends InquirableImpl { 037 038 private final static String KEY = "key"; 039 private transient StateService stateService; 040 final Logger logger = Logger.getLogger(StateInfoAdminInquirableImpl.class); 041 042 @Override 043 public StateInfo retrieveDataObject(Map<String, String> parameters) { 044 try { 045 return getStateService().getState(parameters.get(KEY), getContextInfo()); 046 } catch (DoesNotExistException ex) { 047 throw new RuntimeException (ex); 048 } catch (InvalidParameterException ex) { 049 throw new RuntimeException (ex); 050 } catch (MissingParameterException ex) { 051 throw new RuntimeException (ex); 052 } catch (OperationFailedException ex) { 053 throw new RuntimeException (ex); 054 } catch (PermissionDeniedException ex) { 055 throw new RuntimeException (ex); 056 } 057 } 058 059 public void setStateService(StateService stateService) { 060 this.stateService = stateService; 061 } 062 063 public StateService getStateService() { 064 if (stateService == null) { 065 stateService = (StateService) GlobalResourceLoader.getService(new QName(StateServiceConstants.NAMESPACE, 066 StateServiceConstants.SERVICE_NAME_LOCAL_PART)); 067 } 068 return this.stateService; 069 } 070 071 private ContextInfo getContextInfo() { 072 return ContextBuilder.loadContextInfo(); 073 } 074 }