FOREIGN MODULE sun_reflect_generics_factory;

IMPORT
    java_lang_reflect := "java.lang.reflect",
    sun_reflect_generics_scope := "sun.reflect.generics.scope",
    java_lang := "java.lang";

TYPE

  CoreReflectionFactory* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + GenericsFactory)    (* Typebound Procedures *)
                           STATIC
                             PROCEDURE make*(p0 : java_lang_reflect.GenericDeclaration;
                                             p1 : sun_reflect_generics_scope.Scope) : CoreReflectionFactory;
                           END;

  GenericsFactory* = POINTER TO INTERFACE RECORD (java_lang.Object)    (* Typebound Procedures *)
                     END;




PROCEDURE (self:CoreReflectionFactory) findTypeVariable*(p0 : java_lang.String) : java_lang_reflect.TypeVariable,NEW,EXTENSIBLE;

PROCEDURE (self:CoreReflectionFactory) makeArrayType*(p0 : java_lang_reflect.Type) : java_lang_reflect.Type,NEW,EXTENSIBLE;

PROCEDURE (self:CoreReflectionFactory) makeBool*() : java_lang_reflect.Type,NEW,EXTENSIBLE;

PROCEDURE (self:CoreReflectionFactory) makeByte*() : java_lang_reflect.Type,NEW,EXTENSIBLE;

PROCEDURE (self:CoreReflectionFactory) makeChar*() : java_lang_reflect.Type,NEW,EXTENSIBLE;

PROCEDURE (self:CoreReflectionFactory) makeDouble*() : java_lang_reflect.Type,NEW,EXTENSIBLE;

PROCEDURE (self:CoreReflectionFactory) makeFloat*() : java_lang_reflect.Type,NEW,EXTENSIBLE;

PROCEDURE (self:CoreReflectionFactory) makeInt*() : java_lang_reflect.Type,NEW,EXTENSIBLE;

PROCEDURE (self:CoreReflectionFactory) makeLong*() : java_lang_reflect.Type,NEW,EXTENSIBLE;

PROCEDURE (self:CoreReflectionFactory) makeNamedType*(p0 : java_lang.String) : java_lang_reflect.Type,NEW,EXTENSIBLE;

PROCEDURE (self:CoreReflectionFactory) makeParameterizedType*(    p0 : java_lang_reflect.Type;
                                                              IN  p1 : ARRAY OF java_lang_reflect.Type;
                                                                  p2 : java_lang_reflect.Type) : java_lang_reflect.ParameterizedType,NEW,EXTENSIBLE;

PROCEDURE (self:CoreReflectionFactory) makeShort*() : java_lang_reflect.Type,NEW,EXTENSIBLE;

PROCEDURE (self:CoreReflectionFactory) makeTypeVariable*(    p0 : java_lang.String;
                                                         IN  p1 : ARRAY OF FieldTypeSignature) : java_lang_reflect.TypeVariable,NEW,EXTENSIBLE;

PROCEDURE (self:CoreReflectionFactory) makeVoid*() : java_lang_reflect.Type,NEW,EXTENSIBLE;

PROCEDURE (self:CoreReflectionFactory) makeWildcard*(IN  p0 : ARRAY OF FieldTypeSignature;
                                                     IN  p1 : ARRAY OF FieldTypeSignature) : java_lang_reflect.WildcardType,NEW,EXTENSIBLE;

PROCEDURE (self:GenericsFactory) findTypeVariable*(p0 : java_lang.String) : java_lang_reflect.TypeVariable,NEW,ABSTRACT;

PROCEDURE (self:GenericsFactory) makeArrayType*(p0 : java_lang_reflect.Type) : java_lang_reflect.Type,NEW,ABSTRACT;

PROCEDURE (self:GenericsFactory) makeBool*() : java_lang_reflect.Type,NEW,ABSTRACT;

PROCEDURE (self:GenericsFactory) makeByte*() : java_lang_reflect.Type,NEW,ABSTRACT;

PROCEDURE (self:GenericsFactory) makeChar*() : java_lang_reflect.Type,NEW,ABSTRACT;

PROCEDURE (self:GenericsFactory) makeDouble*() : java_lang_reflect.Type,NEW,ABSTRACT;

PROCEDURE (self:GenericsFactory) makeFloat*() : java_lang_reflect.Type,NEW,ABSTRACT;

PROCEDURE (self:GenericsFactory) makeInt*() : java_lang_reflect.Type,NEW,ABSTRACT;

PROCEDURE (self:GenericsFactory) makeLong*() : java_lang_reflect.Type,NEW,ABSTRACT;

PROCEDURE (self:GenericsFactory) makeNamedType*(p0 : java_lang.String) : java_lang_reflect.Type,NEW,ABSTRACT;

PROCEDURE (self:GenericsFactory) makeParameterizedType*(    p0 : java_lang_reflect.Type;
                                                        IN  p1 : ARRAY OF java_lang_reflect.Type;
                                                            p2 : java_lang_reflect.Type) : java_lang_reflect.ParameterizedType,NEW,ABSTRACT;

PROCEDURE (self:GenericsFactory) makeShort*() : java_lang_reflect.Type,NEW,ABSTRACT;

PROCEDURE (self:GenericsFactory) makeTypeVariable*(    p0 : java_lang.String;
                                                   IN  p1 : ARRAY OF FieldTypeSignature) : java_lang_reflect.TypeVariable,NEW,ABSTRACT;

PROCEDURE (self:GenericsFactory) makeVoid*() : java_lang_reflect.Type,NEW,ABSTRACT;

PROCEDURE (self:GenericsFactory) makeWildcard*(IN  p0 : ARRAY OF FieldTypeSignature;
                                               IN  p1 : ARRAY OF FieldTypeSignature) : java_lang_reflect.WildcardType,NEW,ABSTRACT;

END sun_reflect_generics_factory.