1 10 package org.mmbase.applications.xmlimporter; 11 12 import java.util.*; 13 import java.io.File ; 14 import org.mmbase.applications.xmlimporter.ObjectMerger; 15 16 21 public class InteractiveTransaction extends Transaction { 22 23 36 protected InteractiveTransaction(UserTransactionInfo uti, String key, 37 String id, boolean commitOnClose, long timeOut, File reportFile, 38 Consultant consultant) { 39 super(uti, key, id, commitOnClose, timeOut, reportFile, consultant); 40 } 41 42 56 protected boolean handleDuplicates(TmpObject tempObj, List similarObjects, 57 ObjectMerger merger) throws TransactionHandlerException { 58 Iterator iter = similarObjects.iterator(); 59 List mergeResults = new ArrayList(); 60 while (iter.hasNext() ) { 61 TmpObject similarObject = (TmpObject)iter.next(); 62 mergeResults.add(caculateMerge(similarObject, tempObj, merger)); 63 } 64 65 int choice = consult(tempObj, mergeResults); 66 67 merge((TmpObject)similarObjects.get(choice), tempObj, merger); 68 return true; 69 } 70 71 82 int consult(TmpObject originalObject, List mergeResults) 83 throws TransactionHandlerException { 84 85 consultant.consultUser(originalObject, mergeResults); 87 88 if (!consultant.duplicatesResolved()) { 90 throw new TransactionHandlerException( 91 "Failed to resolve duplicates by consulting user."); 92 } 93 94 return consultant.getChoice(); 96 } 97 } 98 99 | Popular Tags |