001 package org.kuali.ole.serviceimpl;
002
003 import org.kuali.ole.OleSRUConstants;
004 import org.kuali.ole.service.OleValidateInputRequestService;
005 import java.util.Map;
006
007 /**
008 * Created with IntelliJ IDEA.
009 * User: ?
010 * Date: 7/9/12
011 * Time: 7:57 PM
012 * To change this template use File | Settings | File Templates.
013 */
014 public class OleValidateInputRequestServiceImpl implements OleValidateInputRequestService {
015
016 /**
017 * to validate whether the required parameters of corresponding operation is present or not.
018 * @param reqParamMap
019 * @return boolean
020 */
021 public String inputRequestValidation(Map reqParamMap){
022
023 String operationType=(String)reqParamMap.get(OleSRUConstants.OPERATION_TYPE);
024 String version=(String)reqParamMap.get(OleSRUConstants.VERSION);
025 String query=(String)reqParamMap.get(OleSRUConstants.QUERY);
026 String recordPacking= (String)reqParamMap.get(OleSRUConstants.RECORD_PACKING);
027 String recordSchema= (String)reqParamMap.get(OleSRUConstants.RECORD_SCHEMA);
028
029 if(operationType ==null || "".equals(operationType))
030 return OleSRUConstants.OPERATION_REQUIRED_FIELD_DIAGNOSTIC_MSG;
031
032 if(OleSRUConstants.SEARCH_RETRIEVE.equalsIgnoreCase(operationType)) {
033 if(version==null || "".equals(version))
034 return OleSRUConstants.VERSION_REQUIRED_FIELD_DIAGNOSTIC_MSG;
035 else if(query==null || "".equals(query))
036 return OleSRUConstants.QUERY_REQUIRED_FIELD_DIAGNOSTIC_MSG;
037
038 }else if(OleSRUConstants.EXPLAIN.equalsIgnoreCase(operationType)){
039 if(version==null || "".equals(version))
040 return OleSRUConstants.VERSION_REQUIRED_FIELD_DIAGNOSTIC_MSG;
041
042 }else
043 return OleSRUConstants.INVALID_OPERATION_TYPE;
044
045 if(!(OleSRUConstants.RECORD_PACK_XML.equalsIgnoreCase(recordPacking) || OleSRUConstants.RECORD_PACK_STRING.equalsIgnoreCase(recordPacking)))
046 return OleSRUConstants.INVALID_RECORD_PACKING;
047
048 if(recordSchema!=null && OleSRUConstants.SEARCH_RETRIEVE.equalsIgnoreCase(operationType))
049 if(!(OleSRUConstants.DUBLIN_RECORD_SCHEMA.equalsIgnoreCase(recordSchema)))
050 return OleSRUConstants.INVALID_RECORD_SCHEMA;
051
052 return null;
053 }
054 }