JMMF API
pre-release v0.7

fr.umlv.jmmf.reflect
Class DefaultTypeModel

java.lang.Object
  |
  +--fr.umlv.jmmf.reflect.DefaultTypeModel
All Implemented Interfaces:
TypeModel

public class DefaultTypeModel
extends java.lang.Object
implements TypeModel

default java subtyping rules. Override this class to change the default subtyping rules.

Version:
0.7.6
Author:
Remi Forax

Constructor Summary
DefaultTypeModel()
           
 
Method Summary
 java.lang.Class[] getSuperTypes(java.lang.Class c)
          return all super types of a given class.
 boolean isAssignableFrom(java.lang.Class a, java.lang.Class b)
           
 boolean isInterface(java.lang.Class c)
          return true if the class must be considered as an interface.
 java.lang.Class pgcd(java.lang.Class a, java.lang.Class b)
          find the common subtype of two classes.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultTypeModel

public DefaultTypeModel()
Method Detail

getSuperTypes

public java.lang.Class[] getSuperTypes(java.lang.Class c)
return all super types of a given class.
Specified by:
getSuperTypes in interface TypeModel

isInterface

public boolean isInterface(java.lang.Class c)
return true if the class must be considered as an interface.
Specified by:
isInterface in interface TypeModel

isAssignableFrom

public boolean isAssignableFrom(java.lang.Class a,
                                java.lang.Class b)

pgcd

public java.lang.Class pgcd(java.lang.Class a,
                            java.lang.Class b)
find the common subtype of two classes. The classe can contains two interfaces or one interface and one class. The pgcd operation is defined as follow :
with: class B extends A and 
      class C extends A.

  pgcd(B,C)=A

with: class A and
      class B.

  pgcd(A,B)=Object

with: class A implements I and
      interface I.

  pgcd(A,I)=I

with: class A and
      interface I.

  pgcd(A,I)=Object

with: interface L extends I,J and
      interface M extends I,K.

  pgcd(L,M)=I

with: interface L extends I,K and
      interface M extends I,K.

  pgcd(L,M)=Object
Parameters:
a - a class or an interface.
b - a class or an interface.
Returns:
the common subtype of two classes.

JMMF API
pre-release v0.7

Rémi Forax 1999,2000 Université de Marne la Vallée