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    }