1 19 20 package org.netbeans.modules.j2ee.ejbcore.api.methodcontroller; 21 22 import org.netbeans.modules.j2ee.common.method.MethodModel; 23 import org.netbeans.modules.j2ee.dd.api.ejb.Session; 24 import org.openide.filesystems.FileObject; 25 26 31 public final class SessionMethodController extends AbstractMethodController { 32 33 private final Session model; 34 35 public SessionMethodController(FileObject ejbClassFO, Session model) { 36 super(ejbClassFO, model); 37 this.model = model; 38 } 39 40 @Override 41 public boolean hasJavaImplementation(MethodModel intfView) { 42 return true; 43 } 44 45 @Override 46 public boolean hasJavaImplementation(MethodType methodType) { 47 return true; 48 } 49 50 @Override 51 public MethodType getMethodTypeFromImpl(MethodModel implView) { 52 MethodType methodType = null; 53 if (implView.getName().startsWith("ejbCreate")) { 54 methodType = new MethodType.CreateMethodType(implView); 55 } else if (!implView.getName().startsWith("ejb")) { 56 methodType = new MethodType.BusinessMethodType(implView); 57 } 58 return methodType; 59 } 60 61 @Override 62 public MethodType getMethodTypeFromInterface(MethodModel clientView) { 63 String localHome = model.getLocalHome(); 65 String home = model.getHome(); 66 if ((localHome != null && findInClass(localHome, clientView)) || (home != null && findInClass(home, clientView))) { 67 return new MethodType.CreateMethodType(clientView); 68 } else { 69 return new MethodType.BusinessMethodType(clientView); 70 } 71 } 72 73 public AbstractMethodController.GenerateFromImpl createGenerateFromImpl() { 74 return new SessionGenerateFromImplVisitor(); 75 } 76 77 public AbstractMethodController.GenerateFromIntf createGenerateFromIntf() { 78 return new SessionGenerateFromIntfVisitor(); 79 } 80 81 @Override 82 public boolean supportsMethodType(MethodType.Kind methodType) { 83 boolean stateless = Session.SESSION_TYPE_STATELESS.equals(model.getSessionType()); 84 boolean simplified = model.getRoot().getVersion().doubleValue() > 2.1; 85 return methodType == MethodType.Kind.BUSINESS || (!simplified && !stateless && (methodType == MethodType.Kind.CREATE)); 86 } 87 } | Popular Tags |