1 package org.kuali.ole.ingest.function;
2
3
4
5 import org.kuali.ole.DataCarrierService;
6 import org.kuali.ole.OLEConstants;
7 import org.kuali.ole.editor.service.DiscoveryHelperService;
8 import org.kuali.ole.ingest.ISBNUtil;
9 import org.kuali.rice.core.api.resourceloader.GlobalResourceLoader;
10 import org.kuali.rice.krms.framework.engine.Function;
11
12 import java.util.ArrayList;
13 import java.util.List;
14
15
16
17
18 public class ISBNFunction implements Function {
19
20 private DiscoveryHelperService discoveryHelperService;
21
22
23
24
25
26
27 @Override
28 public Object invoke(Object... arguments) {
29 DataCarrierService dataCarrierService = GlobalResourceLoader.getService(OLEConstants.DATA_CARRIER_SERVICE);
30 Object argument = arguments[0];
31 String existingDocstoreField = (String)((ArrayList) argument).get(0);
32 String isbn = (String)((ArrayList) argument).get(1);
33 String normalizedISBN = null;
34 try {
35 normalizedISBN = new ISBNUtil().normalizeISBN(isbn);
36 } catch (Exception e) {
37 e.printStackTrace();
38 }
39 List list = getDiscoveryHelperService().getResponseFromSOLR(existingDocstoreField, normalizedISBN);
40 if(list.size() >= 1){
41 dataCarrierService.addData(OLEConstants.BIB_INFO_LIST_FROM_SOLR_RESPONSE, list);
42 return true;
43 }
44 return false;
45 }
46
47
48
49
50
51 public DiscoveryHelperService getDiscoveryHelperService() {
52 if (null == discoveryHelperService) {
53 discoveryHelperService = new DiscoveryHelperService();
54 }
55 return discoveryHelperService;
56 }
57
58
59
60
61
62 public void setDiscoveryHelperService(DiscoveryHelperService discoveryHelperService) {
63 this.discoveryHelperService = discoveryHelperService;
64 }
65 }