1 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 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 68 public String getDisplayText() { 69 return NbBundle.getMessage(EjbCmpFieldSafeDeleteRefactoring.class, "TXT_EjbJarCmpFieldSafeDelete", 70 field.getFieldName()); } 72 73 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 |