KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > j2ee > refactoring > safedelete > EjbCmpFieldSafeDeleteRefactoring


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
20 package org.netbeans.modules.j2ee.refactoring.safedelete;
21
22 import org.netbeans.modules.refactoring.api.Problem;
23 import org.netbeans.modules.refactoring.spi.RefactoringElementsBag;
24 import org.netbeans.modules.j2ee.dd.api.ejb.Entity;
25 import org.netbeans.modules.j2ee.dd.api.ejb.CmpField;
26 import org.netbeans.modules.javacore.internalapi.ExternalChange;
27 import org.netbeans.modules.javacore.internalapi.JavaMetamodel;
28 import org.openide.util.NbBundle;
29
30 /**
31  * @author pfiala
32  */

33 public class EjbCmpFieldSafeDeleteRefactoring extends BaseRefactoring {
34
35     private Entity entity;
36     private CmpField field;
37
38     public EjbCmpFieldSafeDeleteRefactoring(EjbHelper helper, Entity entity, CmpField field) {
39         super(helper);
40         this.entity = entity;
41         this.field = field;
42     }
43
44     protected Problem preCheckThis() {
45         if (field.getFieldName().equals(entity.getPrimkeyField())) {
46             return new Problem(true, NbBundle.getMessage(EjbCmpFieldSafeDeleteRefactoring.class,
47                     "TXT_CmpPrimaryKeySafeDelete", field.getFieldName(), entity.getEjbName()));
48         } else {
49             return new Problem(false, NbBundle.getMessage(EjbCmpFieldSafeDeleteRefactoring.class,
50                 "TXT_CmpFieldGetterSetterMethodWarningSafeDelete", field.getFieldName()));
51         }
52     }
53
54     public Problem prepareThis(RefactoringElementsBag refactoringElementsBag) {
55         helper.addRefactoringElement(refactoringElementsBag, new EjbJarRefactoringElement());
56         return null;
57     }
58
59     public final class EjbJarRefactoringElement extends AbstractSafeDeleteRefactoringElement implements ExternalChange {
60
61         public EjbJarRefactoringElement() {
62             super(helper.getFileObject());
63         }
64
65         /** Returns text describing the refactoring formatted for display (using HTML tags).
66          * @return Formatted text.
67          */

68         public String JavaDoc getDisplayText() {
69             return NbBundle.getMessage(EjbCmpFieldSafeDeleteRefactoring.class, "TXT_EjbJarCmpFieldSafeDelete",
70                     field.getFieldName()); //NOI18N
71
}
72
73         /** Performs the change represented by this refactoring element.
74          */

75         public void performChange() {
76             JavaMetamodel.getManager().registerExtChange(this);
77         }
78
79         public void performExternalChange() {
80             entity.removeCmpField(field);
81             helper.writeDD();
82         }
83
84         public void undoExternalChange() {
85             entity.addCmpField(field);
86             helper.writeDD();
87         }
88     }
89 }
90
Popular Tags