KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > javacore > jmiimpl > javamodel > MethodClassImpl


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 package org.netbeans.modules.javacore.jmiimpl.javamodel;
20
21 import java.util.Arrays JavaDoc;
22 import java.util.List JavaDoc;
23 import org.netbeans.jmi.javamodel.*;
24 import org.netbeans.mdr.storagemodel.StorableClass;
25 import org.netbeans.modules.javacore.parser.TypeParamRef;
26 import org.netbeans.modules.javacore.parser.TypeRef;
27
28 /**
29  * Implementation of Method class proxy interface.
30  *
31  */

32 public abstract class MethodClassImpl extends SemiPersistentClass implements MethodClass {
33
34     protected MethodClassImpl(StorableClass s) {
35         super(s);
36     }
37
38     /**
39      * The default factory operation used to create an instance object.
40      * @return The created instance object.
41      */

42     public Method createMethod() {
43         return create(null, null, 0, null, null, null, null, null, null, null, null, 0);
44     }
45     
46     public Method createMethod(java.lang.String JavaDoc name, List JavaDoc annotations, int modifiers, java.lang.String JavaDoc javadocText, JavaDoc javadoc, StatementBlock body, java.lang.String JavaDoc bodyText, List JavaDoc typeArguments, List JavaDoc parameters, List JavaDoc exceptionNames, TypeReference typeName, int dimCount) {
47         return create(name, annotations, modifiers, javadocText, javadoc, body, bodyText, typeArguments, parameters, exceptionNames, typeName, dimCount);
48     }
49     
50     private Method create(java.lang.String JavaDoc name, List JavaDoc annotations, int modifiers, java.lang.String JavaDoc javadocText, JavaDoc javadoc, StatementBlock body, java.lang.String JavaDoc bodyText, List JavaDoc typeArguments, List JavaDoc parameters, List JavaDoc exceptionNames, TypeReference typeName, int dimCount) {
51         MethodImpl result = create(name, modifiers, null, null, false);
52         result.setNew();
53         result.setData(annotations, javadocText, javadoc, body, bodyText, typeArguments, parameters, exceptionNames, typeName, dimCount);
54         return result;
55     }
56
57     public MethodImpl create(String JavaDoc name, int modifiers, TypeRef type, TypeParamRef[] exceptions, boolean isTransient) {
58         MethodImpl result;
59         if (isTransient) {
60             result = (MethodImpl) createTransient();
61             boolean changes = result.disableChanges;
62             result.disableChanges = true;
63             try {
64                 result.setName(name);
65                 result.setModifiers(modifiers);
66             } finally {
67                 result.disableChanges = changes;
68             }
69         } else {
70             result = (MethodImpl) super_createMethod(name, null, modifiers, null, null, null, null, null, null, null, null, 0);
71         }
72         result.setTypeRef(type);
73         result.setExceptionRefs(exceptions == null ? null : Arrays.asList(exceptions));
74         return result;
75     }
76
77     protected abstract Method super_createMethod();
78     protected abstract Method super_createMethod(java.lang.String JavaDoc name, List JavaDoc annotations, int modifiers, java.lang.String JavaDoc javadocText, JavaDoc javadoc, StatementBlock body, java.lang.String JavaDoc bodyText, List JavaDoc typeArguments, List JavaDoc parameters, List JavaDoc exceptionNames, TypeReference typeName, int dimCount);
79 }
80
Popular Tags