1 19 20 package org.netbeans.modules.j2ee.ejbcore.action; 21 22 import java.io.IOException ; 23 import java.util.ArrayList ; 24 import java.util.Collections ; 25 import java.util.List ; 26 import javax.lang.model.element.Modifier; 27 import org.netbeans.modules.j2ee.common.method.MethodModel; 28 import org.netbeans.modules.j2ee.dd.api.ejb.EntityAndSession; 29 import org.openide.filesystems.FileObject; 30 31 35 public final class BusinessMethodGenerator extends AbstractMethodGenerator { 36 37 private BusinessMethodGenerator(EntityAndSession ejb, FileObject ejbClassFileObject) { 38 super(ejb, ejbClassFileObject, null); 39 } 40 41 public static BusinessMethodGenerator create(EntityAndSession ejb, FileObject ejbClassFileObject) { 42 return new BusinessMethodGenerator(ejb, ejbClassFileObject); 43 } 44 45 public void generate(MethodModel methodModel, boolean generateLocal, boolean generateRemote) throws IOException { 46 47 if (generateLocal && ejb.getLocal() != null) { 49 MethodModel methodModelCopy = MethodModel.create( 50 methodModel.getName(), 51 methodModel.getReturnType(), 52 null, 53 methodModel.getParameters(), 54 methodModel.getExceptions(), 55 methodModel.getModifiers() 56 ); 57 addMethodToInterface(methodModelCopy, ejb.getLocal()); 58 } 59 60 if (generateRemote && ejb.getRemote() != null) { 62 List <String > exceptions = new ArrayList <String >(methodModel.getExceptions()); 63 if (!methodModel.getExceptions().contains("java.rmi.RemoteException")) { 64 exceptions.add("java.rmi.RemoteException"); 65 } 66 MethodModel methodModelCopy = MethodModel.create( 67 methodModel.getName(), 68 methodModel.getReturnType(), 69 null, 70 methodModel.getParameters(), 71 exceptions, 72 methodModel.getModifiers() 73 ); 74 addMethodToInterface(methodModelCopy, ejb.getRemote()); 75 } 76 77 MethodModel methodModelCopy = MethodModel.create( 79 methodModel.getName(), 80 methodModel.getReturnType(), 81 methodModel.getBody(), 82 methodModel.getParameters(), 83 methodModel.getExceptions(), 84 Collections.singleton(Modifier.PUBLIC) 85 ); 86 addMethod(methodModelCopy, ejbClassFileObject, ejb.getEjbClass()); 87 } 88 89 } 90 | Popular Tags |