KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > j2ee > ejbcore > action > HomeMethodGenerator


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.action;
21
22 import java.io.IOException JavaDoc;
23 import java.util.ArrayList JavaDoc;
24 import java.util.Collections JavaDoc;
25 import java.util.List JavaDoc;
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.netbeans.modules.j2ee.ejbcore._RetoucheUtil;
30 import org.openide.filesystems.FileObject;
31
32 /**
33  *
34  * @author Martin Adamek
35  */

36 public class HomeMethodGenerator extends AbstractMethodGenerator {
37     
38     private HomeMethodGenerator(EntityAndSession ejb, FileObject ejbClassFileObject) {
39         super(ejb, ejbClassFileObject, null);
40     }
41     
42     public static HomeMethodGenerator create(EntityAndSession ejb, FileObject ejbClassFileObject) {
43         return new HomeMethodGenerator(ejb, ejbClassFileObject);
44     }
45
46     public void generate(MethodModel methodModel, boolean generateLocal, boolean generateRemote) throws IOException JavaDoc {
47
48         // local interface
49
if (generateLocal && ejb.getLocalHome() != null) {
50             MethodModel methodModelCopy = MethodModel.create(
51                     methodModel.getName(),
52                     methodModel.getReturnType(),
53                     null,
54                     methodModel.getParameters(),
55                     methodModel.getExceptions(),
56                     Collections.<Modifier>emptySet()
57                     );
58             FileObject fileObject = _RetoucheUtil.resolveFileObjectForClass(ejbClassFileObject, ejb.getLocalHome());
59             addMethod(methodModelCopy, fileObject, ejb.getLocalHome());
60         }
61         
62         // remote interface
63
if (generateRemote && ejb.getHome() != null) {
64             List JavaDoc<String JavaDoc> exceptions = exceptions = new ArrayList JavaDoc<String JavaDoc>(methodModel.getExceptions());
65             if (!methodModel.getExceptions().contains("java.rmi.RemoteException")) {
66                 exceptions.add("java.rmi.RemoteException");
67             }
68             MethodModel methodModelCopy = MethodModel.create(
69                     methodModel.getName(),
70                     methodModel.getReturnType(),
71                     null,
72                     methodModel.getParameters(),
73                     exceptions,
74                     Collections.<Modifier>emptySet()
75                     );
76             FileObject fileObject = _RetoucheUtil.resolveFileObjectForClass(ejbClassFileObject, ejb.getHome());
77             addMethod(methodModelCopy, fileObject, ejb.getHome());
78         }
79
80         // ejb class
81
MethodModel methodModelCopy = MethodModel.create(
82                 "ejbHome" + Character.toUpperCase(methodModel.getName().charAt(0)) + methodModel.getName().substring(1),
83                 methodModel.getReturnType(),
84                 methodModel.getBody(),
85                 methodModel.getParameters(),
86                 methodModel.getExceptions(),
87                 Collections.singleton(Modifier.PUBLIC)
88                 );
89         addMethod(methodModelCopy, ejbClassFileObject, ejb.getEjbClass());
90
91     }
92     
93 }
94
Popular Tags