    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.