View Javadoc
1   package org.kuali.ole.describe.controller;
2   
3   import org.apache.log4j.Logger;
4   import org.kuali.ole.OLEConstants;
5   import org.kuali.ole.QualifiedDublinRecordHandler;
6   import org.kuali.ole.UnQualifiedDublinRecordHandler;
7   import org.kuali.ole.describe.bo.*;
8   import org.kuali.ole.describe.form.EditorForm;
9   import org.kuali.ole.describe.form.WorkBibDublinForm;
10  import org.kuali.ole.docstore.common.document.*;
11  import org.kuali.ole.docstore.common.document.content.enums.DocCategory;
12  import org.kuali.ole.docstore.model.enums.DocFormat;
13  import org.kuali.ole.docstore.model.enums.DocType;
14  import org.kuali.ole.docstore.model.xmlpojo.ingest.AdditionalAttributes;
15  import org.kuali.ole.docstore.model.xmlpojo.ingest.ResponseDocument;
16  import org.kuali.ole.docstore.model.xmlpojo.work.bib.dublin.WorkBibDublinRecord;
17  import org.kuali.ole.describe.service.DocstoreHelperService;
18  import org.kuali.ole.pojo.dublin.unqualified.UnQualifiedDublinRecord;
19  import org.kuali.rice.krad.service.BusinessObjectService;
20  import org.kuali.rice.krad.service.KRADServiceLocator;
21  import org.kuali.rice.krad.uif.UifParameters;
22  import org.kuali.rice.krad.util.GlobalVariables;
23  import org.kuali.rice.krad.util.KRADConstants;
24  import org.kuali.rice.krad.web.form.UifFormBase;
25  import org.springframework.validation.BindingResult;
26  import org.springframework.web.bind.annotation.ModelAttribute;
27  import org.springframework.web.bind.annotation.RequestMapping;
28  import org.springframework.web.servlet.ModelAndView;
29  
30  import javax.servlet.http.HttpServletRequest;
31  import javax.servlet.http.HttpServletResponse;
32  import java.text.SimpleDateFormat;
33  import java.util.*;
34  
35  /**
36   * Created with IntelliJ IDEA.
37   * User: pp7788
38   * Date: 12/11/12
39   * Time: 12:02 PM
40   * To change this template use File | Settings | File Templates.
41   */
42  
43  /**
44   * DublinEditorController is the controller class for Dublin Editor
45   */
46  
47  //@Controller
48  //@RequestMapping(value = "/dublincomponents")
49  public class WorkBibDublinEditor
50          extends AbstractEditor
51          implements DocumentEditor {
52      /**
53       * @see org.kuali.rice.krad.web.controller.UifControllerBase#createInitialForm(javax.servlet.http.HttpServletRequest)
54       */
55  
56      private static final Logger LOG = Logger.getLogger(WorkBibDublinEditor.class);
57  
58      private WorkDublinEditorFormDataHandler dublinEditorFormDataHandler;
59      private DocstoreHelperService docstoreHelperService;
60  
61      private static WorkBibDublinEditor workBibDublinEditor = new WorkBibDublinEditor();
62  
63      public static WorkBibDublinEditor getInstance() {
64          return workBibDublinEditor;
65      }
66  
67      private WorkBibDublinEditor() {
68      }
69  
70      /*private boolean  canDisplayBib(String principalId){
71          LOG.debug("Inside the canLoan method");
72          PermissionService service= KimApiServiceLocator.getPermissionService();
73          return  service.hasPermission(principalId,OLEConstants.OlePatron.PATRON_NAMESPACE,OLEConstants.DISPLAY_BIB);
74      }
75  */
76      @Override
77      public EditorForm loadDocument(EditorForm editorForm) {
78          WorkBibDublinForm dublinEditorForm = new WorkBibDublinForm();
79          String docId = editorForm.getDocId();
80          String bibId = editorForm.getBibId();
81          String docFormat = editorForm.getDocFormat();
82          editorForm.setFromDublin(true);
83          List<BibTree> bibTreeList = new ArrayList();
84          BibTree bibTree = null;
85          Bib bib = null;
86  //        editorForm.setHeaderText("Bibliographic Editor - Dublin Core (Unqualified) Format");
87          if (null != docId) {
88              try {
89  
90                  bibTree = getDocstoreClientLocator().getDocstoreClient().retrieveBibTree(docId);
91                  bibTreeList.add(bibTree);
92                  bib = bibTree.getBib();
93                  dublinEditorForm.setBibTreeList(bibTreeList);
94                  if (docFormat.equals(DocFormat.DUBLIN_UNQUALIFIED.getCode())) {
95                      UnQualifiedDublinRecord unQualifiedDublinRecord = new UnQualifiedDublinRecordHandler().fromXML(bib.getContent());
96                      editorForm.setCreatedBy(bib.getStatus());
97                      editorForm.setCreatedDate(bib.getCreatedOn());
98                      editorForm.setUpdatedBy(bib.getUpdatedBy());
99                      editorForm.setUpdatedDate(bib.getUpdatedOn());
100                     editorForm.setStatusUpdatedBy(bib.getStatusUpdatedBy());
101                     editorForm.setStatusUpdatedOn(bib.getStatusUpdatedOn());
102                     editorForm.setStaffOnlyFlagForBib(bib.isStaffOnly());
103                     editorForm.setTitle(getDublinEditorFormDataHandler().buildDublinUnqTitleField(editorForm, unQualifiedDublinRecord));
104                     editorForm.setDublinFieldList(getDublinEditorFormDataHandler().buildDublinUnqEditorFields(editorForm, unQualifiedDublinRecord));
105                     BusinessObjectService boService = KRADServiceLocator.getBusinessObjectService();
106                     Map parentCriteria = new HashMap();
107                     String bibStatusName = bib.getStatus();
108                     parentCriteria.put("bibliographicRecordStatusName", bibStatusName);
109                     OleBibliographicRecordStatus bibliographicRecordStatus = boService
110                             .findByPrimaryKey(OleBibliographicRecordStatus.class, parentCriteria);
111                     editorForm.setOleBibliographicRecordStatus(bibliographicRecordStatus);
112                 } else if (docFormat.equals(DocFormat.DUBLIN_CORE.getCode())) {
113                     WorkBibDublinRecord workBibDublinRecord = new QualifiedDublinRecordHandler().fromXML(bib.getContent());
114                     dublinEditorForm.setDublinFieldList(getDublinEditorFormDataHandler().buildDublinEditorFields(editorForm, workBibDublinRecord));
115                 }
116                 GlobalVariables.getMessageMap().putInfo(KRADConstants.GLOBAL_INFO, "record.load.message");
117             } catch (Exception e) {
118                 LOG.error("Error: Could not load Bib record for id" + docId + ",Cause:" + e.getMessage(), e);
119                 dublinEditorForm.setMessage("Error: Could not load Bib record for id:" + docId);
120             }
121         } else {
122             GlobalVariables.getMessageMap().putInfo(KRADConstants.GLOBAL_INFO, "dublin.editor.new.message");
123         }
124         // addDocumentToTree(editorForm);
125         dublinEditorForm.setViewId("WorkBibDublinEditorViewPage");
126         //dublinEditorForm.setMessage("Please enter details for new Dublin record.");
127         editorForm.setHasLink(false);
128         return dublinEditorForm;
129     }
130 
131 
132     /*private void addDocumentToTree(EditorForm editorForm) {
133         // TODO: Make sure the same document is not added more than once.
134         List<WorkBibDocument> workBibDocumentList = editorForm.getWorkBibDocumentList();
135         int indexOfDocument = 0;
136         int i = 0;
137         String title = "New Bib1";
138         boolean updateTitle = false;
139         if (null == workBibDocumentList) {
140             workBibDocumentList = new ArrayList<WorkBibDocument>();
141         }
142         workBibDocumentList = new ArrayList<WorkBibDocument>();
143         WorkBibDocument tempDocument = new WorkBibDocument();
144         if (null == editorForm.getDocId()) {
145             // LOG.info("workBibDocumentList size before remove-->" + workBibDocumentList.size());
146             for (WorkBibDocument workBibDocument : workBibDocumentList) {
147                 if (workBibDocument.getTitle().equalsIgnoreCase("New Bib1")) {
148                     tempDocument = workBibDocument;
149                     // workBibDocumentList.remove(workBibDocument);
150                 }
151             }
152             workBibDocumentList.remove(tempDocument);
153             // LOG.info("workBibDocumentList size after remove-->" + workBibDocumentList.size());
154 
155             WorkBibDocument workBibDocument = new WorkBibDocument();
156             workBibDocument.setTitle(title);
157             workBibDocumentList.add(workBibDocument);
158         } else {
159             boolean isUpadated = false;
160             for (WorkBibDocument bibDocument : workBibDocumentList) {
161                 if (bibDocument.getId() != null && bibDocument.getId().equals(editorForm.getDocId())) {
162                     isUpadated = true;
163                     break;
164                 } else if (bibDocument.getTitle().equals(title)) {
165                     indexOfDocument = i;
166                     updateTitle = true;
167                     break;
168                 }
169                 i++;
170             }
171             if (!isUpadated) {
172                 WorkBibDocument workBibDocument = new WorkBibDocument();
173                 workBibDocument.setId(editorForm.getDocId());
174                 DocstoreHelperService docstoreHelperService = new DocstoreHelperService();
175                 workBibDocument = docstoreHelperService.getInfoForBibTree(workBibDocument);
176                 if (updateTitle) {
177                     workBibDocumentList.set(indexOfDocument, workBibDocument);
178                 } else {
179                     workBibDocumentList.add(workBibDocument);
180                 }
181             }
182 
183         }
184         editorForm.setWorkBibDocumentList(workBibDocumentList);
185     }*/
186 
187     /*private void updateTreeData(EditorForm editorForm) {
188         int indexOfDocument = 0;
189         List<WorkBibDocument> workBibDocumentList = editorForm.getWorkBibDocumentList();
190         int i = 0;
191         for (WorkBibDocument bibDocument : workBibDocumentList) {
192             if (editorForm.getDocId().equals(bibDocument.getId())) {
193                 indexOfDocument = i;
194                 break;
195             }
196             i++;
197         }
198         DocstoreHelperService docstoreHelperService = new DocstoreHelperService();
199         WorkBibDocument workBibDocument = new WorkBibDocument();
200         workBibDocument.setId(editorForm.getDocId());
201         workBibDocument.setDocFormat(editorForm.getDocFormat());
202         workBibDocument = docstoreHelperService.getInfoForBibTree(workBibDocument);
203 
204         workBibDocumentList.set(indexOfDocument, workBibDocument);
205         editorForm.setWorkBibDocumentList(workBibDocumentList);
206     }*/
207 
208     @Override
209     public EditorForm deleteDocument(EditorForm editorForm) {
210         return new WorkBibDublinForm();
211     }
212 
213     @Override
214     public EditorForm saveDocument(EditorForm editorForm) {
215         WorkBibDublinForm dublinEditorForm = (WorkBibDublinForm) editorForm.getDocumentForm();
216         String bibliographicRecordStatusCode = editorForm.getOleBibliographicRecordStatus().getBibliographicRecordStatusCode();
217         boolean staffOnlyFlag = editorForm.isStaffOnlyFlagForBib();
218         String uuid = editorForm.getDocId();
219         String bibId =  editorForm.getBibId();
220         AdditionalAttributes additionalAttributes = new AdditionalAttributes();
221         ResponseDocument responseDocument = null;
222         Date date = new Date();
223         SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
224         String dateStr = sdf.format(date);
225         String user = GlobalVariables.getUserSession().getLoggedInUserPrincipalName();
226         String content = "";
227         String editorStatusMessage = "";
228         BusinessObjectService boService = KRADServiceLocator.getBusinessObjectService();
229         OleBibliographicRecordStatus bibliographicRecordStatus = null;
230         if (bibliographicRecordStatusCode != null) {
231             content = getDublinEditorFormDataHandler().buildDublinRecordForDocStore(editorForm, uuid);
232             Map parentCriteria = new HashMap();
233             parentCriteria.put("bibliographicRecordStatusCode", bibliographicRecordStatusCode);
234             bibliographicRecordStatus = boService.findByPrimaryKey(OleBibliographicRecordStatus.class, parentCriteria);
235         }
236         Bib bib = null;
237         try {
238             if (uuid != null && !uuid.trim().equals("")) {
239 
240                 if (boService != null) {
241 
242                     bib = getDocstoreClientLocator().getDocstoreClient().retrieveBib(bibId);
243                     bib.setStaffOnly(staffOnlyFlag);
244                     bib.setContent(content);
245                     if (bibliographicRecordStatus != null) {
246                         bib.setStatus(bibliographicRecordStatus.getBibliographicRecordStatusName());
247                     } else {
248                         bib.setStatus("");
249                     }
250                     getDocstoreClientLocator().getDocstoreClient().updateBib(bib);
251                     String bibStatusName = bib.getStatus();
252                     editorForm.setCreatedBy(bib.getCreatedBy());
253                     editorForm.setCreatedDate(bib.getCreatedOn());
254                     editorForm.setUpdatedBy(bib.getUpdatedBy());
255                     editorForm.setUpdatedDate(bib.getUpdatedOn());
256                     editorForm.setStatusUpdatedOn(bib.getStatusUpdatedOn());
257                     editorForm.setStatusUpdatedBy(bib.getStatusUpdatedBy());
258                     Map parentCriteria = new HashMap();
259                     parentCriteria.put("bibliographicRecordStatusName", bibStatusName);
260                     bibliographicRecordStatus = boService.findByPrimaryKey(OleBibliographicRecordStatus.class, parentCriteria);
261                     if (bibliographicRecordStatus != null) {
262                         editorForm.setOleBibliographicRecordStatus(bibliographicRecordStatus);
263                     }
264                     editorStatusMessage = "record.update.message";
265                 }
266             } else {
267                 BibTree bibTree = new BibTree();
268                 bib = new BibDcUnqualified();
269                 bib.setCategory(DocCategory.WORK.getCode());
270                 bib.setType(DocType.BIB.getCode());
271                 bib.setFormat(org.kuali.ole.docstore.common.document.content.enums.DocFormat.DUBLIN_UNQUALIFIED.getCode());
272                 bib.setStaffOnly(staffOnlyFlag);
273                 bib.setContent(content);
274                 if (bibliographicRecordStatus != null) {
275                     bib.setStatus(bibliographicRecordStatus.getBibliographicRecordStatusName());
276                 } else {
277                     bib.setStatus("");
278                 }
279                 bibTree.setBib(bib);
280                 HoldingsTree holdingsTree = getHoldingsTree(editorForm.geteResourceId());
281                 bibTree.getHoldingsTrees().add(holdingsTree);
282 
283                 getDocstoreClientLocator().getDocstoreClient().createBib(bib);
284                 holdingsTree.getHoldings().setBib(bib);
285                 getDocstoreClientLocator().getDocstoreClient().createHoldingsTree(holdingsTree);
286                 editorForm.setDocId(bib.getId());
287                 editorForm.setBibId(bib.getId());
288                 List<BibTree> bibTreeList = new ArrayList<>();
289                 bibTreeList.add(bibTree);
290                 editorForm.setBibTreeList(bibTreeList);
291                 editorStatusMessage = "record.create.message";
292                 dublinEditorForm.setUuid("");
293 
294 
295             }
296         } catch (Exception e) {
297             LOG.error("Failed to save record. Cause:" + e.getMessage(), e);
298             dublinEditorForm.setDublinFieldList(Arrays.asList(new WorkDublinEditorField()));
299             dublinEditorForm.setExistingDublinFieldList(new ArrayList<WorkDublinEditorField>());
300             editorStatusMessage = "marc.editor.failure.message";
301         }
302         dublinEditorForm.setViewId("WorkBibDublinEditorViewPage");
303         dublinEditorForm = (WorkBibDublinForm) loadDocument(editorForm);
304         GlobalVariables.getMessageMap().getInfoMessages().clear();
305         GlobalVariables.getMessageMap().putInfo(KRADConstants.GLOBAL_INFO, editorStatusMessage);
306         return dublinEditorForm;
307     }
308 
309     /**
310      * This method   will add the dublin record based on the selected Line index and updates the component.
311      *
312      * @param form
313      * @param result
314      * @param request
315      * @param response
316      * @return ModelAndView
317      */
318     @RequestMapping(params = "methodToCall=addField")
319     public ModelAndView addDublinField(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
320                                        HttpServletRequest request, HttpServletResponse response) {
321         WorkBibDublinForm dublinEditorForm = (WorkBibDublinForm) form;
322         int index = Integer.parseInt(form.getActionParamaterValue(UifParameters.SELECTED_LINE_INDEX));
323         index++;
324         List<WorkDublinEditorField> dublinEditorFieldList = dublinEditorForm.getDublinFieldList();
325         dublinEditorFieldList.add(index, new WorkDublinEditorField());
326         //return super.updateComponent(dublinEditorForm, result, request, response);
327         return null;
328     }
329 
330     /**
331      * This method will remove the DublinField based on the index position and updates the component.
332      *
333      * @param form
334      * @param result
335      * @param request
336      * @param response
337      * @return ModelAndView
338      */
339     @RequestMapping(params = "methodToCall=removeField")
340     public ModelAndView removeDublinField(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
341                                           HttpServletRequest request, HttpServletResponse response) {
342         WorkBibDublinForm dublinEditorForm = (WorkBibDublinForm) form;
343         int index = Integer.parseInt(form.getActionParamaterValue(UifParameters.SELECTED_LINE_INDEX));
344         String selectedCollection = form.getActionParamaterValue(UifParameters.SELLECTED_COLLECTION_PATH);
345         List<WorkDublinEditorField> dublinEditorFieldList = dublinEditorForm.getDublinFieldList();
346         List<WorkDublinEditorField> existingEditorFieldList;
347         if (dublinEditorFieldList.size() > 1) {
348             dublinEditorFieldList.remove(index);
349         }
350         if (selectedCollection.equalsIgnoreCase("existingDublinFieldList")) {
351             existingEditorFieldList = dublinEditorForm.getExistingDublinFieldList();
352             if (existingEditorFieldList.size() > 0) {
353                 existingEditorFieldList.remove(index);
354             }
355         }
356         //        return super.updateComponent(dublinEditorForm, result, request, response);
357         return null;
358     }
359 
360     /**
361      * This method will ingest new record to docStore if uuid is null else it will update exisiting record.
362      * Once the responce has been received from docStore,then form has been nullified.
363      * if response has not received from docStore then form nullified in catch block.
364      *
365      * @param form
366      * @param result
367      * @param request
368      * @param response
369      * @return ModelAndView
370      */
371     @RequestMapping(params = "methodToCall=submit")
372     public ModelAndView submit(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
373                                HttpServletRequest request, HttpServletResponse response) {
374         String responseFromDocstore = null;
375         WorkBibDublinForm dublinEditorForm = (WorkBibDublinForm) form;
376         String uuid = dublinEditorForm.getUuid();
377         String content = getDublinEditorFormDataHandler().buildDublinRecordForDocStore(form, uuid);
378         try {
379             if (uuid != null && !uuid.trim().equals("")) {
380                 responseFromDocstore = getDocstoreHelperService()
381                         .persistToDocstoreForEditor(content, uuid, OLEConstants.UNQUALIFIED_DUBLIN_FORMAT);
382             } else {
383                 responseFromDocstore = getDocstoreHelperService()
384                         .persistToDocstoreForEditor(content, null, OLEConstants.UNQUALIFIED_DUBLIN_FORMAT);
385             }
386             LOG.debug("responseFromDocstore---->" + responseFromDocstore);
387             dublinEditorForm.setDublinFieldList(Arrays.asList(new WorkDublinEditorField()));
388             dublinEditorForm.setExistingDublinFieldList(new ArrayList<WorkDublinEditorField>());
389             dublinEditorForm.setUuid("");
390             //dublinEditorForm.setMessage("Record saved successfully.");
391             GlobalVariables.getMessageMap().putInfo(KRADConstants.GLOBAL_INFO, "record.save.message");
392         } catch (Exception e) {
393             LOG.error("Failed to save record:" + e.getMessage(), e);
394             dublinEditorForm.setDublinFieldList(Arrays.asList(new WorkDublinEditorField()));
395             dublinEditorForm.setExistingDublinFieldList(new ArrayList<WorkDublinEditorField>());
396             //dublinEditorForm.setMessage("Failed to save record.");
397             GlobalVariables.getMessageMap().putInfo(KRADConstants.GLOBAL_INFO, "record.save.fail.message");
398         }
399         //return getUIFModelAndView(dublinEditorForm, "DublinEditorViewPage");
400         return null;
401     }
402 
403     /**
404      * This method will fetch the DublinEditorForm records.
405      *
406      * @param form
407      * @param result
408      * @param request
409      * @param response
410      * @return ModelAndView
411      */
412     @RequestMapping(params = "methodToCall=loadDublinRecord")
413     public ModelAndView loadDublinRecord(@ModelAttribute("KualiForm") UifFormBase form, BindingResult result,
414                                          HttpServletRequest request, HttpServletResponse response) {
415         WorkBibDublinForm dublinEditorForm = (WorkBibDublinForm) form;
416         String uuid = dublinEditorForm.getUuid();
417         try {
418             String docStoreData = getDocstoreHelperService().getDocstoreData(uuid);
419             UnQualifiedDublinRecord unQualifiedDublinRecord = new UnQualifiedDublinRecordHandler()
420                     .fromXML(docStoreData);
421             dublinEditorForm.setExistingDublinFieldList(getDublinEditorFormDataHandler()
422                     .buildDublinUnqEditorFields(dublinEditorForm,
423                             unQualifiedDublinRecord));
424             dublinEditorForm.setDublinFieldList(
425                     new ArrayList<WorkDublinEditorField>(Arrays.asList(new WorkDublinEditorField())));
426             //dublinEditorForm.setUuid("");
427         } catch (Exception e) {
428             LOG.error("Exception:" + e.getMessage(), e);
429         }
430         //return getUIFModelAndView(dublinEditorForm, "DublinEditorViewPage");
431         return null;
432     }
433 
434     /**
435      * Gets the DublinEditorFormDataHandler attribute.
436      *
437      * @return Returns DublinEditorFormDataHandler.
438      */
439     private WorkDublinEditorFormDataHandler getDublinEditorFormDataHandler() {
440         if (null == dublinEditorFormDataHandler) {
441             dublinEditorFormDataHandler = new WorkDublinEditorFormDataHandler();
442         }
443         return dublinEditorFormDataHandler;
444     }
445 
446     /**
447      * Gets the docstoreHelperService attribute.
448      *
449      * @return Returns docstoreHelperService.
450      */
451     private DocstoreHelperService getDocstoreHelperService() {
452         if (null == docstoreHelperService) {
453             return new DocstoreHelperService();
454         }
455         return docstoreHelperService;
456     }
457 
458     /**
459      * Sets the docstoreHelperService attribute value.
460      *
461      * @param docstoreHelperService
462      */
463     public void setDocstoreHelperService(DocstoreHelperService docstoreHelperService) {
464         this.docstoreHelperService = docstoreHelperService;
465     }
466 
467     /**
468      * used for test case.
469      *
470      * @param result
471      * @param request
472      * @param response
473      * @param dublinEditorForm
474      * @return ModelAndView
475      */
476     protected ModelAndView callSuper(BindingResult result, HttpServletRequest request, HttpServletResponse response,
477                                      WorkBibDublinForm dublinEditorForm) {
478         //return super.updateComponent(dublinEditorForm, result, request, response);
479         return null;
480     }
481 
482     @Override
483     public EditorForm addORDeleteFields(EditorForm editorForm, HttpServletRequest request) {
484         String methodName = request.getParameter("methodToCall");
485         if (methodName.equalsIgnoreCase("addField")) {
486             WorkBibDublinForm dublinEditorForm = (WorkBibDublinForm) editorForm.getDocumentForm();
487             int index = Integer.parseInt(editorForm.getActionParamaterValue(UifParameters.SELECTED_LINE_INDEX));
488             index++;
489             List<WorkDublinEditorField> dublinEditorFieldList = editorForm.getDublinFieldList();
490             dublinEditorFieldList.add(index, new WorkDublinEditorField());
491             dublinEditorForm.setDublinFieldList(dublinEditorFieldList);
492             editorForm.setDocumentForm(dublinEditorForm);
493         } else if (methodName.equalsIgnoreCase("removeField")) {
494             WorkBibDublinForm dublinEditorForm = (WorkBibDublinForm) editorForm.getDocumentForm();
495             int index = Integer.parseInt(editorForm.getActionParamaterValue(UifParameters.SELECTED_LINE_INDEX));
496             List<WorkDublinEditorField> editorControlFieldList = editorForm.getDublinFieldList();
497             if (editorControlFieldList.size() > 1) {
498                 editorControlFieldList.remove(index);
499             }
500             editorForm.setDocumentForm(dublinEditorForm);
501         }
502 
503         return editorForm;
504     }
505 
506     @Override
507     public EditorForm deleteVerify(EditorForm editorForm) throws Exception {
508         return null;
509     }
510 
511     @Override
512     public EditorForm delete(EditorForm editorForm) throws Exception {
513         WorkBibDublinForm workBibDublinForm = new WorkBibDublinForm();
514         String docId = editorForm.getDocId();
515         String operation = "delete";
516         getResponseFromDocStore(editorForm, docId, operation);
517         return workBibDublinForm;
518     }
519 
520     @Override
521     public EditorForm addORRemoveExtentOfOwnership(EditorForm editorForm, HttpServletRequest request) {
522         return null;  //To change body of implemented methods use File | Settings | File Templates.
523     }
524 
525     @Override
526     public EditorForm addORRemoveAccessInformationAndHoldingsNotes(EditorForm editorForm, HttpServletRequest request) {
527         return null;  //To change body of implemented methods use File | Settings | File Templates.
528     }
529 
530     @Override
531     public EditorForm addORRemoveItemNote(EditorForm editorForm, HttpServletRequest request) {
532         return null;  //To change body of implemented methods use File | Settings | File Templates.
533     }
534 
535     @Override
536     public EditorForm showBibs(EditorForm editorForm) {
537         return null;
538     }
539 
540     public EditorForm copy(EditorForm editorForm) {
541         return null;
542     }
543 
544 }