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
|
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 |
DefaultTypeModel
public DefaultTypeModel()
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.
Rémi Forax 1999,2000 Université de Marne la Vallée