1 20 21 package org.apache.directory.ldapstudio.browser.core.jobs; 22 23 24 import org.apache.directory.ldapstudio.browser.core.model.IConnection; 25 import org.apache.directory.ldapstudio.browser.core.model.IEntry; 26 import org.apache.directory.ldapstudio.browser.core.model.ModelModificationException; 27 28 29 public abstract class AbstractModificationJob extends AbstractAsyncBulkJob 30 { 31 32 protected void executeBulkJob( ExtendedProgressMonitor pm ) throws ModelModificationException 33 { 34 35 try 36 { 37 this.executeAsyncModificationJob( pm ); 38 } 39 finally 40 { 41 if ( !getModifiedEntry().getConnection().isSuspended() ) 43 { 44 String [] affectedAttributeNames = getAffectedAttributeNames(); 45 InitializeAttributesJob.initializeAttributes( getModifiedEntry(), affectedAttributeNames, pm ); 46 } 47 } 48 } 49 50 51 protected IConnection[] getConnections() 52 { 53 return new IConnection[] 54 { getModifiedEntry().getConnection() }; 55 } 56 57 58 protected Object [] getLockedObjects() 59 { 60 return new Object [] 61 { getModifiedEntry() }; 62 } 63 64 65 protected abstract void executeAsyncModificationJob( ExtendedProgressMonitor pm ) throws ModelModificationException; 66 67 68 protected abstract IEntry getModifiedEntry(); 69 70 71 protected abstract String [] getAffectedAttributeNames(); 72 73 } 74 | Popular Tags |