FOREIGN MODULE sun_reflect_annotation;

IMPORT
    java_security := "java.security",
    java_lang := "java.lang",
    java_lang_reflect := "java.lang.reflect",
    java_io := "java.io",
    java_util := "java.util",
    sun_reflect := "sun.reflect",
    java_lang_annotation := "java.lang.annotation",
    java_nio := "java.nio";

TYPE

  AnnotationParser* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                      STATIC
                        PROCEDURE annotationForMap*(p0 : java_lang.Class;
                                                    p1 : java_util.Map) : java_lang_annotation.Annotation;
                        PROCEDURE Init*() : AnnotationParser,CONSTRUCTOR;
                        PROCEDURE parseAnnotations*(IN  p0 : ARRAY OF BYTE;
                                                        p1 : sun_reflect.ConstantPool;
                                                        p2 : java_lang.Class) : java_util.Map;
                        PROCEDURE parseMemberValue*(p0 : java_lang.Class;
                                                    p1 : java_nio.ByteBuffer;
                                                    p2 : sun_reflect.ConstantPool;
                                                    p3 : java_lang.Class) : java_lang.Object;
                        PROCEDURE parseParameterAnnotations*(IN  p0 : ARRAY OF BYTE;
                                                                 p1 : sun_reflect.ConstantPool;
                                                                 p2 : java_lang.Class) : POINTER TO ARRAY OF java_lang_annotation.Annotation;
                        PROCEDURE toArray*(p0 : java_util.Map) : POINTER TO ARRAY OF java_lang_annotation.Annotation;
                      END;

  AnnotationType* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)    (* Typebound Procedures *)
                    STATIC
                      PROCEDURE getInstance*(p0 : java_lang.Class) : AnnotationType;
                      PROCEDURE invocationHandlerReturnType*(p0 : java_lang.Class) : java_lang.Class;
                    END;

  EnumConstantNotPresentExceptionProxy* = POINTER TO EXTENSIBLE RECORD (ExceptionProxy)    (* Typebound Procedures *)
                                          STATIC
                                            PROCEDURE Init*(p0 : java_lang.Class;
                                                            p1 : java_lang.String) : EnumConstantNotPresentExceptionProxy,CONSTRUCTOR;
                                          END;

  ExceptionProxy* = POINTER TO ABSTRACT RECORD (java_lang.Object + java_io.Serializable)    (* Typebound Procedures *)
                    STATIC
                      PROCEDURE Init*() : ExceptionProxy,CONSTRUCTOR;
                    END;

  TypeNotPresentExceptionProxy* = POINTER TO EXTENSIBLE RECORD (ExceptionProxy)    (* Typebound Procedures *)
                                  STATIC
                                    PROCEDURE Init*(p0 : java_lang.String;
                                                    p1 : java_lang.Throwable) : TypeNotPresentExceptionProxy,CONSTRUCTOR;
                                  END;




PROCEDURE (self:AnnotationType) isInherited*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:AnnotationType) memberDefaults*() : java_util.Map,NEW,EXTENSIBLE;

PROCEDURE (self:AnnotationType) members*() : java_util.Map,NEW,EXTENSIBLE;

PROCEDURE (self:AnnotationType) memberTypes*() : java_util.Map,NEW,EXTENSIBLE;

PROCEDURE (self:AnnotationType) retention*() : java_lang_annotation.RetentionPolicy,NEW,EXTENSIBLE;

PROCEDURE (self:AnnotationType) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:EnumConstantNotPresentExceptionProxy) generateException!() : java_lang.RuntimeException,EXTENSIBLE;

PROCEDURE (self:ExceptionProxy) generateException!() : java_lang.RuntimeException,NEW,ABSTRACT;

PROCEDURE (self:TypeNotPresentExceptionProxy) generateException!() : java_lang.RuntimeException,EXTENSIBLE;

END sun_reflect_annotation.