FOREIGN MODULE sun_dc_path;

IMPORT
    java_lang,
    java_io;

TYPE

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

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

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

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

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

END sun_dc_path.