001package org.kuali.ole.sip2.sip2Response; 002 003import org.apache.commons.lang3.StringUtils; 004import org.kuali.ole.ncip.bo.OLECheckInItem; 005import org.kuali.ole.sip2.common.MessageUtil; 006import org.kuali.ole.sip2.constants.OLESIP2Constants; 007import org.kuali.ole.sip2.requestParser.OLESIP2CheckInRequestParser; 008 009 010/** 011 * Created by gayathria on 1/9/14. 012 */ 013public class OLESIP2CheckInResponse extends OLESIP2Response { 014 015 public OLESIP2CheckInResponse() { 016 this.code = OLESIP2Constants.CHECK_IN_RESPONSE; 017 } 018 019 020 public String getSIP2CheckInResponse(OLECheckInItem oleCheckInItem, OLESIP2CheckInRequestParser sip2CheckInRequestParser) { 021 022 StringBuilder oleCheckInBuilder = new StringBuilder(); 023 024 oleCheckInBuilder.append(this.code); 025 026 if (oleCheckInItem.getCode().equalsIgnoreCase("024") || oleCheckInItem.getMessage().equalsIgnoreCase(OLESIP2Constants.CHECK_IN_SUCCESS)) { 027 oleCheckInBuilder.append("1"); 028 oleCheckInBuilder.append(OLESIP2Constants.Y); 029 oleCheckInBuilder.append(OLESIP2Constants.Y); 030 oleCheckInBuilder.append(OLESIP2Constants.Y); 031 } else { 032 oleCheckInBuilder.append("0"); 033 oleCheckInBuilder.append(OLESIP2Constants.N); 034 oleCheckInBuilder.append(OLESIP2Constants.N); 035 oleCheckInBuilder.append(OLESIP2Constants.N); 036 } 037 038 oleCheckInBuilder.append(MessageUtil.getSipDateTime()); 039 oleCheckInBuilder.append(OLESIP2Constants.INSTITUTION_ID_CODE); 040 if (StringUtils.isNotBlank(sip2CheckInRequestParser.getInstitutionId())) { 041 oleCheckInBuilder.append(sip2CheckInRequestParser.getInstitutionId()); 042 } 043 oleCheckInBuilder.append(OLESIP2Constants.SPLIT+ 044 OLESIP2Constants.ITEM_IDENTIFIER_CODE); 045 oleCheckInBuilder.append(oleCheckInItem.getBarcode() != null ? oleCheckInItem.getBarcode() : sip2CheckInRequestParser.getItemIdentifier()); 046 oleCheckInBuilder.append(OLESIP2Constants.SPLIT+ 047 OLESIP2Constants.PERMANENT_LOCATION_CODE); 048 if (StringUtils.isNotBlank(oleCheckInItem.getItemLocation())) { 049 oleCheckInBuilder.append(oleCheckInItem.getItemLocation()); 050 } 051 if (StringUtils.isNotBlank(oleCheckInItem.getTitle())) { 052 oleCheckInBuilder.append(OLESIP2Constants.SPLIT+ 053 OLESIP2Constants.TITLE_IDENTIFIER_CODE); 054 oleCheckInBuilder.append(oleCheckInItem.getTitle().replaceAll(OLESIP2Constants.NON_ROMAN_REGEX,"")); 055 } 056 if (StringUtils.isNotBlank(oleCheckInItem.getPatronBarcode())) { 057 oleCheckInBuilder.append(OLESIP2Constants.SPLIT+ 058 OLESIP2Constants.PATRON_IDENTIFIER_CODE); 059 oleCheckInBuilder.append(oleCheckInItem.getPatronBarcode()); 060 } 061 062 if (StringUtils.isNotBlank(oleCheckInItem.getItemType())) { 063 oleCheckInBuilder.append(OLESIP2Constants.SPLIT+ 064 OLESIP2Constants.MEDIA_TYPE_CODE); 065 oleCheckInBuilder.append(oleCheckInItem.getItemType()); 066 } 067 068 069 if (StringUtils.isNotBlank(oleCheckInItem.getAuthor())) { 070 oleCheckInBuilder.append(OLESIP2Constants.SPLIT+ 071 OLESIP2Constants.ITEM_PROPERTIES_CODE); 072 oleCheckInBuilder.append("Author : " + oleCheckInItem.getAuthor().replaceAll(OLESIP2Constants.NON_ROMAN_REGEX,"")); 073 } 074 075 if (StringUtils.isNotBlank(oleCheckInItem.getMessage())) { 076 oleCheckInBuilder.append(OLESIP2Constants.SPLIT+ 077 OLESIP2Constants.SCREEN_MSG_CODE); 078 oleCheckInBuilder.append(oleCheckInItem.getMessage().replaceAll("<br/>", "")); 079 oleCheckInBuilder.append(OLESIP2Constants.SPLIT+ 080 OLESIP2Constants.PRINT_LINE_CODE); 081 oleCheckInBuilder.append(oleCheckInItem.getMessage().replaceAll("<br/>", "")); 082 } 083 084 if (StringUtils.isNotBlank(sip2CheckInRequestParser.getSequenceNum())) { 085 oleCheckInBuilder.append(OLESIP2Constants.SPLIT+ 086 OLESIP2Constants.SEQUENCE_NUM_CODE); 087 oleCheckInBuilder.append(sip2CheckInRequestParser.getSequenceNum()); 088 oleCheckInBuilder.append(MessageUtil.computeChecksum(oleCheckInBuilder.toString())); 089 } 090 091 System.out.println(oleCheckInBuilder.toString()); 092 093 094 return oleCheckInBuilder.toString() + '\r'; 095 096 097 } 098 099}