KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > refactoring > java > plugins > RetoucheCommit


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19 package org.netbeans.modules.refactoring.java.plugins;
20
21 import java.io.IOException JavaDoc;
22 import java.util.ArrayList JavaDoc;
23 import java.util.Collection JavaDoc;
24 import org.netbeans.api.java.source.ModificationResult;
25 import org.netbeans.modules.refactoring.spi.BackupFacility;
26 import org.netbeans.modules.refactoring.spi.Transaction;
27 import org.openide.filesystems.FileObject;
28
29 /**
30  *
31  * @author Jan Becicka
32  */

33
34 public class RetoucheCommit implements Transaction {
35     ArrayList JavaDoc<BackupFacility.Handle> ids = new ArrayList JavaDoc();
36     private boolean commited = false;
37     Collection JavaDoc<ModificationResult> results;
38     
39     public RetoucheCommit(Collection JavaDoc<ModificationResult> results) {
40         this.results = results;
41     }
42     
43     public void commit() {
44         try {
45             if (commited) {
46                 for (BackupFacility.Handle id:ids) {
47                     try {
48                         id.restore();
49                     } catch (IOException JavaDoc ex) {
50                         throw (RuntimeException JavaDoc) new RuntimeException JavaDoc().initCause(ex);
51                     }
52                 }
53             } else {
54                 commited = true;
55                 for (ModificationResult result:results) {
56                     ids.add(BackupFacility.getDefault().backup(result.getModifiedFileObjects()));
57                     result.commit();
58                 }
59             }
60             
61         } catch (IOException JavaDoc ex) {
62             throw (RuntimeException JavaDoc) new RuntimeException JavaDoc().initCause(ex);
63         }
64     }
65     
66     public void rollback() {
67         for (BackupFacility.Handle id:ids) {
68             try {
69                 id.restore();
70             } catch (IOException JavaDoc ex) {
71                 throw (RuntimeException JavaDoc) new RuntimeException JavaDoc().initCause(ex);
72             }
73         }
74     }
75 }
76             
Popular Tags