KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > directory > ldapstudio > browser > core > jobs > AbstractModificationJob


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements. See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership. The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied. See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  *
19  */

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             // reload affected attributes
42
if ( !getModifiedEntry().getConnection().isSuspended() )
43             {
44                 String JavaDoc[] 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 JavaDoc[] getLockedObjects()
59     {
60         return new Object JavaDoc[]
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 JavaDoc[] getAffectedAttributeNames();
72
73 }
74
Popular Tags