FOREIGN MODULE sun_dc_path;

IMPORT
    java_lang := "java.lang",
    java_io := "java.io";

TYPE

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

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

  PathError* = POINTER TO EXTENSIBLE RECORD (java_lang.RuntimeException)
               STATIC
                 BAD_boxdest*          = "getBox: invalid box destination array";
                 BAD_pathconsumer*     = "sendTo: invalid path consumer";
                 DUMMY*                = "";
                 INTERRUPTED*          = "";
                 UNEX_appendCubic*     = "appendCubic: unexpected";
                 UNEX_appendLine*      = "appendLine: unexpected";
                 UNEX_appendQuadratic* = "appendQuadratic: unexpected";
                 UNEX_beginPath*       = "beginPath: unexpected";
                 UNEX_beginSubpath*    = "beginSubpath: unexpected";
                 UNEX_closedSubpath*   = "closedSubpath: unexpected";
                 UNEX_endPath*         = "endPath: unexpected";
                 UNEX_getBox*          = "getBox: unexpected";
                 UNEX_sendTo*          = "sendTo: unexpected";
                 UNEX_useProxy*        = "useProxy: unexpected";
                 PROCEDURE Init*(p0 : java_lang.String) : PathError,CONSTRUCTOR;
                 PROCEDURE Init*() : PathError,CONSTRUCTOR;
               END;

  PathException* = POINTER TO EXTENSIBLE RECORD (java_lang.Exception)
                   STATIC
                     BAD_PATH_endPath*  = "endPath: bad path";
                     BAD_PATH_useProxy* = "useProxy: bad path";
                     DUMMY*             = "";
                     PROCEDURE Init*(p0 : java_lang.String) : PathException,CONSTRUCTOR;
                     PROCEDURE Init*() : PathException,CONSTRUCTOR;
                   END;




PROCEDURE (self:FastPathProducer) getBox*(IN  p0 : ARRAY OF SHORTREAL),NEW,ABSTRACT;

PROCEDURE (self:FastPathProducer) sendTo*(p0 : PathConsumer),NEW,ABSTRACT;

PROCEDURE (self:PathConsumer) appendCubic*(p0 : SHORTREAL;
                                           p1 : SHORTREAL;
                                           p2 : SHORTREAL;
                                           p3 : SHORTREAL;
                                           p4 : SHORTREAL;
                                           p5 : SHORTREAL),NEW,ABSTRACT;

PROCEDURE (self:PathConsumer) appendLine*(p0 : SHORTREAL;
                                          p1 : SHORTREAL),NEW,ABSTRACT;

PROCEDURE (self:PathConsumer) appendQuadratic*(p0 : SHORTREAL;
                                               p1 : SHORTREAL;
                                               p2 : SHORTREAL;
                                               p3 : SHORTREAL),NEW,ABSTRACT;

PROCEDURE (self:PathConsumer) beginPath*(),NEW,ABSTRACT;

PROCEDURE (self:PathConsumer) beginSubpath*(p0 : SHORTREAL;
                                            p1 : SHORTREAL),NEW,ABSTRACT;

PROCEDURE (self:PathConsumer) closedSubpath*(),NEW,ABSTRACT;

PROCEDURE (self:PathConsumer) dispose*(),NEW,ABSTRACT;

PROCEDURE (self:PathConsumer) endPath*(),NEW,ABSTRACT;

PROCEDURE (self:PathConsumer) getConsumer*() : PathConsumer,NEW,ABSTRACT;

PROCEDURE (self:PathConsumer) getCPathConsumer*() : LONGINT,NEW,ABSTRACT;

PROCEDURE (self:PathConsumer) useProxy*(p0 : FastPathProducer),NEW,ABSTRACT;

END sun_dc_path.