KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > polyglot > ext > pao > types > PaoPrimitiveType_c


1 package polyglot.ext.pao.types;
2
3 import polyglot.ext.jl.types.PrimitiveType_c;
4 import polyglot.types.Type;
5 import polyglot.types.TypeSystem;
6
7 /**
8  * A PAO primitive type. In the PAO extension, primitives are considered a
9  * subtype of <code>Object</code>.
10  */

11 public class PaoPrimitiveType_c extends PrimitiveType_c
12 {
13     protected PaoPrimitiveType_c() {
14         super();
15     }
16
17     public PaoPrimitiveType_c(TypeSystem ts, Kind kind) {
18         super(ts, kind);
19     }
20
21     /**
22      * Returns <code>true</code> if <code>ancestor</code> is the
23      * <code>Object</code> type, as primitives are considered a
24      * subtype of <code>Object</code>.
25      */

26     public boolean descendsFromImpl(Type ancestor) {
27         return ts.equals(ancestor, ts.Object());
28     }
29
30     /**
31      * Returns <code>true</code> if the normal rules for implicit casts
32      * hold, or if casting a primitive to <code>Object</code>, as primitives
33      * are considered a subtype of <code>Object</code>.
34      */

35     public boolean isImplicitCastValidImpl(Type toType) {
36         return ts.equals(toType, ts.Object()) ||
37                super.isImplicitCastValidImpl(toType);
38     }
39
40     /**
41      * Returns <code>true</code> if the normal rules for casts
42      * hold, or if casting a primitive to <code>Object</code>, as primitives
43      * are considered a subtype of <code>Object</code>.
44      */

45     public boolean isCastValidImpl(Type toType) {
46         return ts.equals(toType, ts.Object()) || super.isCastValidImpl(toType);
47     }
48 }
49
Popular Tags