1 package de.webman.duplication.eventhandler; 2 3 import com.teamkonzept.web.*; 4 import com.teamkonzept.webman.*; 5 import com.teamkonzept.webman.db.TKWebmanDBManager; 6 import com.teamkonzept.webman.mainint.*; 7 import com.teamkonzept.webman.mainint.db.*; 8 9 10 import com.teamkonzept.webman.mainint.db.queries.*; 11 import com.teamkonzept.webman.mainint.db.queries.duplication.*; 12 import com.teamkonzept.webman.mainint.events.*; 13 import com.teamkonzept.lib.*; 14 import com.teamkonzept.db.*; 15 16 import java.sql.*; 17 import java.io.*; 18 import org.apache.log4j.Category; 19 20 27 public class DUMultiDuplicateHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults 28 { 29 32 private static Category CAT = Category.getInstance(DUMultiDuplicateHandler.class); 33 34 private DUMultiDuplicateHandler() 35 {} 36 37 private static DUMultiDuplicateHandler instance = new DUMultiDuplicateHandler(); 38 39 public static DUMultiDuplicateHandler getInstance() 40 { 41 return instance; 42 } 43 44 public void handleEvent(TKEvent evt) throws TKException 45 { 46 try 47 { 48 49 TKParams params = evt.getParams(); 50 51 String numberOfCopiesString = params.get( "PAR", "NUMBER_OF_COPIES" ); 52 54 if(numberOfCopiesString != null && !numberOfCopiesString.equals("")){ 55 NameAssembler nameAssembler = new NameAssembler(params); 57 58 Integer numberOfCopies = new Integer (numberOfCopiesString); 59 for(int i=0; i < numberOfCopies.intValue() ; i++){ 60 61 Integer [] newRootIDs = new Integer [2]; 62 65 DUDuplicateHandler.getInstance().doDuDuplicate(i == numberOfCopies.intValue()-1, newRootIDs, evt); 66 String nameExtension = nameAssembler.assemble(i, null); 67 doDURenameDuplicates(nameExtension, newRootIDs, evt); 68 TKDBConnectionManager.getInstance().closeConnection(); 70 } 71 72 } 73 else 74 { DUDuplicateHandler.getInstance().doDuDuplicate(evt); 76 } 77 } 78 catch (Throwable e) 79 { 80 throw WebmanExceptionHandler.getException(e); 82 } 83 } 84 85 public boolean isHandler(TKEvent evt) 86 { 87 return evt.getName().equalsIgnoreCase("DU_MULTI_DUPLICATE"); 88 } 89 90 95 public boolean doDURenameDuplicates(String nameExtension, Integer [] newRootIDs, TKEvent evt) throws Throwable 97 { 98 TKParams params = evt.getParams(); 99 100 Integer contentRoot = newRootIDs[0]; 103 Integer siteRoot = newRootIDs[1]; 104 105 106 String extModeStr = params.get( "PAR", "NAME_EXTENSION" ); 108 int extMode; 109 110 if(extModeStr == null || extModeStr.equals("")){ 111 extMode = 0; 112 } 113 else{ 114 try{ 115 extMode = (new Integer (extModeStr)).intValue(); 116 } 117 catch(NumberFormatException e){ 118 CAT.warn(" Exception caught by DuplicateServlet.doDuMultiDuplicate() ", e); 119 extMode = 0; 120 } 121 } 122 123 124 125 126 if(extMode == 2) 128 { 129 if(contentRoot != null ) 130 { 131 TKQuery qContentRename = TKDBManager.newQuery( TKDBContentTreeRenameRecursive.class ); 133 qContentRename.setQueryParams("NAME_EXT", nameExtension ); 134 qContentRename.setQueryParams("ROOT_ID", contentRoot); 135 if(true){ 136 qContentRename.setQueryParams("POS", new Integer (1)); 137 } 139 qContentRename.execute(); 140 qContentRename.close(); 141 } 143 if(siteRoot!= null){ TKQuery qSiteRename = TKDBManager.newQuery( TKDBSiteTreeRenameRecursive.class ); 145 qSiteRename.setQueryParams("NAME_EXT", nameExtension ); 146 qSiteRename.setQueryParams("ROOT_ID", siteRoot); 147 if(true){ 148 qSiteRename.setQueryParams("POS", new Integer (1)); 149 } 151 qSiteRename.execute(); 152 qSiteRename.close(); 153 } 154 } 155 if(extMode >= 1){ 157 TKQuery TKDBContentNodeNameExtend = TKDBManager.newQuery( TKDBContentNodeNameExtend.class ); 158 TKDBContentNodeNameExtend.setQueryParams("NAME_EXT",nameExtension); 159 TKDBContentNodeNameExtend.setQueryParams("CONTENT_NODE_ID", contentRoot); 160 if(true) 161 { 162 TKDBContentNodeNameExtend.setQueryParams("POS", new Integer (1)); 163 } 165 167 TKDBContentNodeNameExtend.execute(); 168 TKDBContentNodeNameExtend.close(); 170 if(siteRoot!= null){ 171 TKQuery TKDBSiteNodeNameExtend = TKDBManager.newQuery( TKDBSiteNodeNameExtend.class ); 172 TKDBSiteNodeNameExtend.setQueryParams("NAME_EXT",nameExtension); 173 TKDBSiteNodeNameExtend.setQueryParams("SITE_NODE_ID", siteRoot); 174 if(true){ 175 TKDBSiteNodeNameExtend.setQueryParams("POS", new Integer (1)); 176 } 178 TKDBSiteNodeNameExtend.execute(); 179 TKDBSiteNodeNameExtend.close(); 180 } 181 } 182 return true; 183 } 184 185 186 } 187 | Popular Tags |