KickJava   Java API By Example, From Geeks To Geeks.

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


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.Collection JavaDoc;
22 import java.util.Collections JavaDoc;
23 import java.util.HashMap JavaDoc;
24 import java.util.Map JavaDoc;
25 import javax.jmi.reflect.ConstraintViolationException;
26 import org.netbeans.jmi.javamodel.*;
27 import org.netbeans.mdr.handlers.ClassProxyHandler;
28 import org.netbeans.mdr.persistence.MOFID;
29 import org.netbeans.mdr.persistence.StorageException;
30 import org.netbeans.mdr.storagemodel.StorableBaseObject;
31 import org.netbeans.mdr.storagemodel.StorableClass;
32 import org.netbeans.mdr.util.DebugException;
33 import org.netbeans.modules.javacore.api.JavaModel;
34
35 /**
36  *
37  * @author Martin Matula
38  */

39 public abstract class PrimitiveTypeClassImpl extends ClassProxyHandler implements PrimitiveTypeClass {
40     private static final String JavaDoc MOFID_PREFIX = "primitive:"; // NOI18N
41
private static Map JavaDoc allInstances;
42     
43     /** Creates a new instance of PackageClassImpl */
44     public PrimitiveTypeClassImpl(StorableClass s) {
45         super(s);
46     }
47     
48     public PrimitiveType createPrimitiveType(String JavaDoc name, PrimitiveTypeKind kind) {
49         throw new ConstraintViolationException(this, refMetaObject(), "Cannot explicitly create instances of PrimitiveType."); // NOI18N
50
}
51     
52     public PrimitiveType createPrimitiveType() {
53         throw new ConstraintViolationException(this, refMetaObject(), "Cannot explicitly create instances of PrimitiveType."); // NOI18N
54
}
55     
56     private void initInstances() {
57         if (allInstances == null) {
58             if (JavaModel.getDefaultExtent().equals(refImmediatePackage())) {
59                 try {
60                     StorableBaseObject s = _getDelegate();
61                     DeferredObject o;
62                     PrimitiveTypeImpl pt;
63                     PrimitiveTypeKind pk;
64
65                     allInstances=new HashMap JavaDoc();
66                     // void
67
pk = PrimitiveTypeKindEnum.VOID;
68                     o = new DeferredObject(new MOFID(1, MOFID_PREFIX + pk.toString()), s.getMdrStorage(), s.getImmediatePackageId(), s.getOutermostPackageId(), s.getMetaObject(), (StorableClass) s, null);
69                     pt = (PrimitiveTypeImpl) _getRepository().getHandler(o);
70                     pt.kind = pk;
71                     allInstances.put(pk.toString(), pt);
72
73                     // boolean
74
pk = PrimitiveTypeKindEnum.BOOLEAN;
75                     o = new DeferredObject(new MOFID(2, MOFID_PREFIX + pk.toString()), s.getMdrStorage(), s.getImmediatePackageId(), s.getOutermostPackageId(), s.getMetaObject(), (StorableClass) s, null);
76                     pt = (PrimitiveTypeImpl) _getRepository().getHandler(o);
77                     pt.kind = pk;
78                     allInstances.put(pk.toString(), pt);
79
80                     // byte
81
pk = PrimitiveTypeKindEnum.BYTE;
82                     o = new DeferredObject(new MOFID(3, MOFID_PREFIX + pk.toString()), s.getMdrStorage(), s.getImmediatePackageId(), s.getOutermostPackageId(), s.getMetaObject(), (StorableClass) s, null);
83                     pt = (PrimitiveTypeImpl) _getRepository().getHandler(o);
84                     pt.kind = pk;
85                     allInstances.put(pk.toString(), pt);
86
87                     // char
88
pk = PrimitiveTypeKindEnum.CHAR;
89                     o = new DeferredObject(new MOFID(4, MOFID_PREFIX + pk.toString()), s.getMdrStorage(), s.getImmediatePackageId(), s.getOutermostPackageId(), s.getMetaObject(), (StorableClass) s, null);
90                     pt = (PrimitiveTypeImpl) _getRepository().getHandler(o);
91                     pt.kind = pk;
92                     allInstances.put(pk.toString(), pt);
93
94                     // double
95
pk = PrimitiveTypeKindEnum.DOUBLE;
96                     o = new DeferredObject(new MOFID(5, MOFID_PREFIX + pk.toString()), s.getMdrStorage(), s.getImmediatePackageId(), s.getOutermostPackageId(), s.getMetaObject(), (StorableClass) s, null);
97                     pt = (PrimitiveTypeImpl) _getRepository().getHandler(o);
98                     pt.kind = pk;
99                     allInstances.put(pk.toString(), pt);
100
101                     // float
102
pk = PrimitiveTypeKindEnum.FLOAT;
103                     o = new DeferredObject(new MOFID(6, MOFID_PREFIX + pk.toString()), s.getMdrStorage(), s.getImmediatePackageId(), s.getOutermostPackageId(), s.getMetaObject(), (StorableClass) s, null);
104                     pt = (PrimitiveTypeImpl) _getRepository().getHandler(o);
105                     pt.kind = pk;
106                     allInstances.put(pk.toString(), pt);
107
108                     // int
109
pk = PrimitiveTypeKindEnum.INT;
110                     o = new DeferredObject(new MOFID(7, MOFID_PREFIX + pk.toString()), s.getMdrStorage(), s.getImmediatePackageId(), s.getOutermostPackageId(), s.getMetaObject(), (StorableClass) s, null);
111                     pt = (PrimitiveTypeImpl) _getRepository().getHandler(o);
112                     pt.kind = pk;
113                     allInstances.put(pk.toString(), pt);
114
115                     // long
116
pk = PrimitiveTypeKindEnum.LONG;
117                     o = new DeferredObject(new MOFID(8, MOFID_PREFIX + pk.toString()), s.getMdrStorage(), s.getImmediatePackageId(), s.getOutermostPackageId(), s.getMetaObject(), (StorableClass) s, null);
118                     pt = (PrimitiveTypeImpl) _getRepository().getHandler(o);
119                     pt.kind = pk;
120                     allInstances.put(pk.toString(), pt);
121
122                     // short
123
pk = PrimitiveTypeKindEnum.SHORT;
124                     o = new DeferredObject(new MOFID(9, MOFID_PREFIX + pk.toString()), s.getMdrStorage(), s.getImmediatePackageId(), s.getOutermostPackageId(), s.getMetaObject(), (StorableClass) s, null);
125                     pt = (PrimitiveTypeImpl) _getRepository().getHandler(o);
126                     pt.kind = pk;
127                     allInstances.put(pk.toString(), pt);
128                 } catch (StorageException e) {
129                     throw new DebugException();
130                 }
131             } else {
132                 ((PrimitiveTypeClassImpl) JavaModel.getDefaultExtent().getPrimitiveType()).initInstances();
133         }
134     }
135     }
136     
137     PrimitiveType resolveType(String JavaDoc name) {
138         initInstances();
139         return (PrimitiveType) allInstances.get(name);
140     }
141
142     protected Collection JavaDoc _allOfClass(boolean recursive) {
143         initInstances();
144         return Collections.unmodifiableCollection(allInstances.values());
145     }
146     
147     public org.netbeans.jmi.javamodel.Type resolve(java.lang.String JavaDoc name) {
148         JavaModelPackage pkg = (JavaModelPackage) refImmediatePackage();
149         return pkg.getType().resolve(name);
150     }
151 }
152
Popular Tags