KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > j2ee > ejbcore > api > methodcontroller > SessionMethodController


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.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 /**
27  *
28  * @author Chris Webster
29  * @author Martin Adamek
30  */

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 JavaDoc
41     public boolean hasJavaImplementation(MethodModel intfView) {
42         return true;
43     }
44
45     @Override JavaDoc
46     public boolean hasJavaImplementation(MethodType methodType) {
47         return true;
48     }
49     
50     @Override JavaDoc
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 JavaDoc
62     public MethodType getMethodTypeFromInterface(MethodModel clientView) {
63         // see if the interface is home or local home, otherwise assume business
64
String JavaDoc localHome = model.getLocalHome();
65         String JavaDoc 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 JavaDoc
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