KickJava   Java API By Example, From Geeks To Geeks.

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


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 org.netbeans.jmi.javamodel.FieldGroup;
22 import org.netbeans.jmi.javamodel.FieldGroupClass;
23 import org.netbeans.jmi.javamodel.TypeReference;
24 import org.netbeans.mdr.storagemodel.StorableClass;
25 import java.util.List JavaDoc;
26 import org.netbeans.modules.javacore.parser.TypeRef;
27
28 /**
29  * Implementation of FieldGroupClass interface. Provides support for creation
30  * FieldGroup. FieldGroup models field declarations such as 'int a, b;'.
31  *
32  * @author Pavel Flaska
33  */

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

45     public FieldGroup createFieldGroup() {
46         return create(0, null, null);
47     }
48
49     /**
50      * The factory operation used to create an FieldGroup with specified
51      * parameters.
52      *
53      * @param modifiers modifiers for the group of fields
54      * @param typeName name of the type for the group of fields
55      * @param fields
56      * @return The created instance object
57      */

58     public FieldGroup createFieldGroup(java.lang.String JavaDoc name, java.util.List JavaDoc annotations, int modifiers, java.lang.String JavaDoc javadocText, org.netbeans.jmi.javamodel.JavaDoc javadoc, org.netbeans.jmi.javamodel.TypeReference typeName, java.util.List JavaDoc fields) {
59         return create(modifiers, typeName, fields);
60     }
61
62     public FieldGroupImpl create(int modifiers, TypeRef type, boolean isTransient) {
63         FieldGroupImpl result;
64         if (isTransient) {
65             result = (FieldGroupImpl) createTransient();
66             boolean changes = result.disableChanges;
67             result.disableChanges = true;
68             try {
69                 result.setModifiers(modifiers);
70             } finally {
71                 result.disableChanges = changes;
72             }
73         } else {
74             result = (FieldGroupImpl) super_createFieldGroup(null, null, modifiers, null, null, null, null);
75         }
76         result.setTypeRef(type);
77         return result;
78     }
79
80     protected abstract FieldGroup super_createFieldGroup();
81     protected abstract FieldGroup super_createFieldGroup(java.lang.String JavaDoc name, java.util.List JavaDoc annotations, int modifiers, java.lang.String JavaDoc javadocText, org.netbeans.jmi.javamodel.JavaDoc javadoc, org.netbeans.jmi.javamodel.TypeReference typeName, java.util.List JavaDoc fields);
82
83     ////////////////////////////////////////////////////////////////////////////
84
// PRIVATE MEMBERS
85
////////////////////////////////////////////////////////////////////////////
86
private FieldGroup create(int modifiers, TypeReference typeName, List JavaDoc fields) {
87         FieldGroupImpl result = create(modifiers, null, false);
88         result.setNew();
89         result.setData(typeName, fields);
90         return result;
91     }
92 }
93
Popular Tags