    FOREIGN MODULE javax_swing_border;

    IMPORT
        java_io,
        java_awt,
        java_lang,
        javax_swing;

    TYPE

      AbstractBorder* = POINTER TO ABSTRACT RECORD (java_lang.Object + Border + java_io.Serializable)
                        STATIC
                          PROCEDURE Init*() : AbstractBorder,CONSTRUCTOR;
                          PROCEDURE getInteriorRectangle*(p0 : java_awt.Component;
                                                          p1 : Border;
                                                          p2 : INTEGER;
                                                          p3 : INTEGER;
                                                          p4 : INTEGER;
                                                          p5 : INTEGER) : java_awt.Rectangle;
                        END;

      BevelBorder* = POINTER TO EXTENSIBLE RECORD (AbstractBorder)
                       bevelType! : INTEGER;
                       highlightOuter! : java_awt.Color;
                       highlightInner! : java_awt.Color;
                       shadowInner! : java_awt.Color;
                       shadowOuter! : java_awt.Color;
                     STATIC
                       RAISED* = 0;
                       LOWERED* = 1;
                       PROCEDURE Init*(p0 : INTEGER) : BevelBorder,CONSTRUCTOR;
                       PROCEDURE Init*(p0 : INTEGER;
                                       p1 : java_awt.Color;
                                       p2 : java_awt.Color) : BevelBorder,CONSTRUCTOR;
                       PROCEDURE Init*(p0 : INTEGER;
                                       p1 : java_awt.Color;
                                       p2 : java_awt.Color;
                                       p3 : java_awt.Color;
                                       p4 : java_awt.Color) : BevelBorder,CONSTRUCTOR;
                     END;

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

      CompoundBorder* = POINTER TO EXTENSIBLE RECORD (AbstractBorder)
                          outsideBorder! : Border;
                          insideBorder! : Border;
                        STATIC
                          PROCEDURE Init*() : CompoundBorder,CONSTRUCTOR;
                          PROCEDURE Init*(p0 : Border;
                                          p1 : Border) : CompoundBorder,CONSTRUCTOR;
                        END;

      EmptyBorder* = POINTER TO EXTENSIBLE RECORD (AbstractBorder + java_io.Serializable)
                       left! : INTEGER;
                       right! : INTEGER;
                       top! : INTEGER;
                       bottom! : INTEGER;
                     STATIC
                       PROCEDURE Init*(p0 : INTEGER;
                                       p1 : INTEGER;
                                       p2 : INTEGER;
                                       p3 : INTEGER) : EmptyBorder,CONSTRUCTOR;
                       PROCEDURE Init*(p0 : java_awt.Insets) : EmptyBorder,CONSTRUCTOR;
                     END;

      EtchedBorder* = POINTER TO EXTENSIBLE RECORD (AbstractBorder)
                        etchType! : INTEGER;
                        highlight! : java_awt.Color;
                        shadow! : java_awt.Color;
                      STATIC
                        RAISED* = 0;
                        LOWERED* = 1;
                        PROCEDURE Init*() : EtchedBorder,CONSTRUCTOR;
                        PROCEDURE Init*(p0 : INTEGER) : EtchedBorder,CONSTRUCTOR;
                        PROCEDURE Init*(p0 : INTEGER;
                                        p1 : java_awt.Color;
                                        p2 : java_awt.Color) : EtchedBorder,CONSTRUCTOR;
                        PROCEDURE Init*(p0 : java_awt.Color;
                                        p1 : java_awt.Color) : EtchedBorder,CONSTRUCTOR;
                      END;

      LineBorder* = POINTER TO EXTENSIBLE RECORD (AbstractBorder)
                      thickness! : INTEGER;
                      lineColor! : java_awt.Color;
                      roundedCorners! : BOOLEAN;
                    STATIC
                      PROCEDURE Init*(p0 : java_awt.Color) : LineBorder,CONSTRUCTOR;
                      PROCEDURE Init*(p0 : java_awt.Color;
                                      p1 : INTEGER) : LineBorder,CONSTRUCTOR;
                      PROCEDURE createBlackLineBorder*() : Border;
                      PROCEDURE createGrayLineBorder*() : Border;
                    END;

      MatteBorder* = POINTER TO EXTENSIBLE RECORD (EmptyBorder)
                       color! : java_awt.Color;
                       tileIcon! : javax_swing.Icon;
                     STATIC
                       PROCEDURE Init*(p0 : INTEGER;
                                       p1 : INTEGER;
                                       p2 : INTEGER;
                                       p3 : INTEGER;
                                       p4 : java_awt.Color) : MatteBorder,CONSTRUCTOR;
                       PROCEDURE Init*(p0 : INTEGER;
                                       p1 : INTEGER;
                                       p2 : INTEGER;
                                       p3 : INTEGER;
                                       p4 : javax_swing.Icon) : MatteBorder,CONSTRUCTOR;
                       PROCEDURE Init*(p0 : javax_swing.Icon) : MatteBorder,CONSTRUCTOR;
                     END;

      SoftBevelBorder* = POINTER TO EXTENSIBLE RECORD (BevelBorder)
                         STATIC
                           PROCEDURE Init*(p0 : INTEGER) : SoftBevelBorder,CONSTRUCTOR;
                           PROCEDURE Init*(p0 : INTEGER;
                                           p1 : java_awt.Color;
                                           p2 : java_awt.Color) : SoftBevelBorder,CONSTRUCTOR;
                           PROCEDURE Init*(p0 : INTEGER;
                                           p1 : java_awt.Color;
                                           p2 : java_awt.Color;
                                           p3 : java_awt.Color;
                                           p4 : java_awt.Color) : SoftBevelBorder,CONSTRUCTOR;
                         END;

      TitledBorder* = POINTER TO EXTENSIBLE RECORD (AbstractBorder)
                        title! : java_lang.String;
                        border! : Border;
                        titlePosition! : INTEGER;
                        titleJustification! : INTEGER;
                        titleFont! : java_awt.Font;
                        titleColor! : java_awt.Color;
                      STATIC
                        DEFAULT_POSITION* = 0;
                        ABOVE_TOP* = 1;
                        TOP* = 2;
                        BELOW_TOP* = 3;
                        ABOVE_BOTTOM* = 4;
                        BOTTOM* = 5;
                        BELOW_BOTTOM* = 6;
                        DEFAULT_JUSTIFICATION* = 0;
                        LEFT* = 1;
                        CENTER* = 2;
                        RIGHT* = 3;
                        EDGE_SPACING! = 2;
                        TEXT_SPACING! = 2;
                        TEXT_INSET_H! = 5;
                        PROCEDURE Init*(p0 : java_lang.String) : TitledBorder,CONSTRUCTOR;
                        PROCEDURE Init*(p0 : Border) : TitledBorder,CONSTRUCTOR;
                        PROCEDURE Init*(p0 : Border;
                                        p1 : java_lang.String) : TitledBorder,CONSTRUCTOR;
                        PROCEDURE Init*(p0 : Border;
                                        p1 : java_lang.String;
                                        p2 : INTEGER;
                                        p3 : INTEGER) : TitledBorder,CONSTRUCTOR;
                        PROCEDURE Init*(p0 : Border;
                                        p1 : java_lang.String;
                                        p2 : INTEGER;
                                        p3 : INTEGER;
                                        p4 : java_awt.Font) : TitledBorder,CONSTRUCTOR;
                        PROCEDURE Init*(p0 : Border;
                                        p1 : java_lang.String;
                                        p2 : INTEGER;
                                        p3 : INTEGER;
                                        p4 : java_awt.Font;
                                        p5 : java_awt.Color) : TitledBorder,CONSTRUCTOR;
                      END;

    PROCEDURE (self:AbstractBorder) getBorderInsets*(p0 : java_awt.Component) : java_awt.Insets,NEW,EXTENSIBLE;

    PROCEDURE (self:AbstractBorder) getBorderInsets*(p0 : java_awt.Component;
                                                     p1 : java_awt.Insets) : java_awt.Insets,NEW,EXTENSIBLE;

    PROCEDURE (self:AbstractBorder) getInteriorRectangle*(p0 : java_awt.Component;
                                                          p1 : INTEGER;
                                                          p2 : INTEGER;
                                                          p3 : INTEGER;
                                                          p4 : INTEGER) : java_awt.Rectangle,NEW,EXTENSIBLE;

    PROCEDURE (self:AbstractBorder) isBorderOpaque*() : BOOLEAN,NEW,EXTENSIBLE;

    PROCEDURE (self:AbstractBorder) paintBorder*(p0 : java_awt.Component;
                                                 p1 : java_awt.Graphics;
                                                 p2 : INTEGER;
                                                 p3 : INTEGER;
                                                 p4 : INTEGER;
                                                 p5 : INTEGER),NEW,EXTENSIBLE;

    PROCEDURE (self:BevelBorder) getBevelType*() : INTEGER,NEW,EXTENSIBLE;

    PROCEDURE (self:BevelBorder) getBorderInsets*(p0 : java_awt.Component) : java_awt.Insets,EXTENSIBLE;

    PROCEDURE (self:BevelBorder) getBorderInsets*(p0 : java_awt.Component;
                                                  p1 : java_awt.Insets) : java_awt.Insets,EXTENSIBLE;

    PROCEDURE (self:BevelBorder) getHighlightInnerColor*(p0 : java_awt.Component) : java_awt.Color,NEW,EXTENSIBLE;

    PROCEDURE (self:BevelBorder) getHighlightOuterColor*(p0 : java_awt.Component) : java_awt.Color,NEW,EXTENSIBLE;

    PROCEDURE (self:BevelBorder) getShadowInnerColor*(p0 : java_awt.Component) : java_awt.Color,NEW,EXTENSIBLE;

    PROCEDURE (self:BevelBorder) getShadowOuterColor*(p0 : java_awt.Component) : java_awt.Color,NEW,EXTENSIBLE;

    PROCEDURE (self:BevelBorder) isBorderOpaque*() : BOOLEAN,EXTENSIBLE;

    PROCEDURE (self:BevelBorder) paintBorder*(p0 : java_awt.Component;
                                              p1 : java_awt.Graphics;
                                              p2 : INTEGER;
                                              p3 : INTEGER;
                                              p4 : INTEGER;
                                              p5 : INTEGER),EXTENSIBLE;

    PROCEDURE (self:BevelBorder) paintLoweredBevel!(p0 : java_awt.Component;
                                                    p1 : java_awt.Graphics;
                                                    p2 : INTEGER;
                                                    p3 : INTEGER;
                                                    p4 : INTEGER;
                                                    p5 : INTEGER),NEW,EXTENSIBLE;

    PROCEDURE (self:BevelBorder) paintRaisedBevel!(p0 : java_awt.Component;
                                                   p1 : java_awt.Graphics;
                                                   p2 : INTEGER;
                                                   p3 : INTEGER;
                                                   p4 : INTEGER;
                                                   p5 : INTEGER),NEW,EXTENSIBLE;

    PROCEDURE (self:Border) getBorderInsets*(p0 : java_awt.Component) : java_awt.Insets,NEW,ABSTRACT;

    PROCEDURE (self:Border) isBorderOpaque*() : BOOLEAN,NEW,ABSTRACT;

    PROCEDURE (self:Border) paintBorder*(p0 : java_awt.Component;
                                         p1 : java_awt.Graphics;
                                         p2 : INTEGER;
                                         p3 : INTEGER;
                                         p4 : INTEGER;
                                         p5 : INTEGER),NEW,ABSTRACT;

    PROCEDURE (self:CompoundBorder) getBorderInsets*(p0 : java_awt.Component) : java_awt.Insets,EXTENSIBLE;

    PROCEDURE (self:CompoundBorder) getBorderInsets*(p0 : java_awt.Component;
                                                     p1 : java_awt.Insets) : java_awt.Insets,EXTENSIBLE;

    PROCEDURE (self:CompoundBorder) getInsideBorder*() : Border,NEW,EXTENSIBLE;

    PROCEDURE (self:CompoundBorder) getOutsideBorder*() : Border,NEW,EXTENSIBLE;

    PROCEDURE (self:CompoundBorder) isBorderOpaque*() : BOOLEAN,EXTENSIBLE;

    PROCEDURE (self:CompoundBorder) paintBorder*(p0 : java_awt.Component;
                                                 p1 : java_awt.Graphics;
                                                 p2 : INTEGER;
                                                 p3 : INTEGER;
                                                 p4 : INTEGER;
                                                 p5 : INTEGER),EXTENSIBLE;

    PROCEDURE (self:EmptyBorder) getBorderInsets*(p0 : java_awt.Component) : java_awt.Insets,EXTENSIBLE;

    PROCEDURE (self:EmptyBorder) getBorderInsets*(p0 : java_awt.Component;
                                                  p1 : java_awt.Insets) : java_awt.Insets,EXTENSIBLE;

    PROCEDURE (self:EmptyBorder) isBorderOpaque*() : BOOLEAN,EXTENSIBLE;

    PROCEDURE (self:EmptyBorder) paintBorder*(p0 : java_awt.Component;
                                              p1 : java_awt.Graphics;
                                              p2 : INTEGER;
                                              p3 : INTEGER;
                                              p4 : INTEGER;
                                              p5 : INTEGER),EXTENSIBLE;

    PROCEDURE (self:EtchedBorder) getBorderInsets*(p0 : java_awt.Component) : java_awt.Insets,EXTENSIBLE;

    PROCEDURE (self:EtchedBorder) getBorderInsets*(p0 : java_awt.Component;
                                                   p1 : java_awt.Insets) : java_awt.Insets,EXTENSIBLE;

    PROCEDURE (self:EtchedBorder) getEtchType*() : INTEGER,NEW,EXTENSIBLE;

    PROCEDURE (self:EtchedBorder) getHighlightColor*(p0 : java_awt.Component) : java_awt.Color,NEW,EXTENSIBLE;

    PROCEDURE (self:EtchedBorder) getShadowColor*(p0 : java_awt.Component) : java_awt.Color,NEW,EXTENSIBLE;

    PROCEDURE (self:EtchedBorder) isBorderOpaque*() : BOOLEAN,EXTENSIBLE;

    PROCEDURE (self:EtchedBorder) paintBorder*(p0 : java_awt.Component;
                                               p1 : java_awt.Graphics;
                                               p2 : INTEGER;
                                               p3 : INTEGER;
                                               p4 : INTEGER;
                                               p5 : INTEGER),EXTENSIBLE;

    PROCEDURE (self:LineBorder) getBorderInsets*(p0 : java_awt.Component) : java_awt.Insets,EXTENSIBLE;

    PROCEDURE (self:LineBorder) getBorderInsets*(p0 : java_awt.Component;
                                                 p1 : java_awt.Insets) : java_awt.Insets,EXTENSIBLE;

    PROCEDURE (self:LineBorder) getLineColor*() : java_awt.Color,NEW,EXTENSIBLE;

    PROCEDURE (self:LineBorder) getThickness*() : INTEGER,NEW,EXTENSIBLE;

    PROCEDURE (self:LineBorder) isBorderOpaque*() : BOOLEAN,EXTENSIBLE;

    PROCEDURE (self:LineBorder) paintBorder*(p0 : java_awt.Component;
                                             p1 : java_awt.Graphics;
                                             p2 : INTEGER;
                                             p3 : INTEGER;
                                             p4 : INTEGER;
                                             p5 : INTEGER),EXTENSIBLE;

    PROCEDURE (self:MatteBorder) getBorderInsets*(p0 : java_awt.Component) : java_awt.Insets,EXTENSIBLE;

    PROCEDURE (self:MatteBorder) isBorderOpaque*() : BOOLEAN,EXTENSIBLE;

    PROCEDURE (self:MatteBorder) paintBorder*(p0 : java_awt.Component;
                                              p1 : java_awt.Graphics;
                                              p2 : INTEGER;
                                              p3 : INTEGER;
                                              p4 : INTEGER;
                                              p5 : INTEGER),EXTENSIBLE;

    PROCEDURE (self:SoftBevelBorder) getBorderInsets*(p0 : java_awt.Component) : java_awt.Insets,EXTENSIBLE;

    PROCEDURE (self:SoftBevelBorder) isBorderOpaque*() : BOOLEAN,EXTENSIBLE;

    PROCEDURE (self:SoftBevelBorder) paintBorder*(p0 : java_awt.Component;
                                                  p1 : java_awt.Graphics;
                                                  p2 : INTEGER;
                                                  p3 : INTEGER;
                                                  p4 : INTEGER;
                                                  p5 : INTEGER),EXTENSIBLE;

    PROCEDURE (self:TitledBorder) getBorder*() : Border,NEW,EXTENSIBLE;

    PROCEDURE (self:TitledBorder) getBorderInsets*(p0 : java_awt.Component) : java_awt.Insets,EXTENSIBLE;

    PROCEDURE (self:TitledBorder) getBorderInsets*(p0 : java_awt.Component;
                                                   p1 : java_awt.Insets) : java_awt.Insets,EXTENSIBLE;

    PROCEDURE (self:TitledBorder) getFont!(p0 : java_awt.Component) : java_awt.Font,NEW,EXTENSIBLE;

    PROCEDURE (self:TitledBorder) getMinimumSize*(p0 : java_awt.Component) : java_awt.Dimension,NEW,EXTENSIBLE;

    PROCEDURE (self:TitledBorder) getTitle*() : java_lang.String,NEW,EXTENSIBLE;

    PROCEDURE (self:TitledBorder) getTitleColor*() : java_awt.Color,NEW,EXTENSIBLE;

    PROCEDURE (self:TitledBorder) getTitleFont*() : java_awt.Font,NEW,EXTENSIBLE;

    PROCEDURE (self:TitledBorder) getTitleJustification*() : INTEGER,NEW,EXTENSIBLE;

    PROCEDURE (self:TitledBorder) getTitlePosition*() : INTEGER,NEW,EXTENSIBLE;

    PROCEDURE (self:TitledBorder) isBorderOpaque*() : BOOLEAN,EXTENSIBLE;

    PROCEDURE (self:TitledBorder) paintBorder*(p0 : java_awt.Component;
                                               p1 : java_awt.Graphics;
                                               p2 : INTEGER;
                                               p3 : INTEGER;
                                               p4 : INTEGER;
                                               p5 : INTEGER),EXTENSIBLE;

    PROCEDURE (self:TitledBorder) setBorder*(p0 : Border),NEW,EXTENSIBLE;

    PROCEDURE (self:TitledBorder) setTitle*(p0 : java_lang.String),NEW,EXTENSIBLE;

    PROCEDURE (self:TitledBorder) setTitleColor*(p0 : java_awt.Color),NEW,EXTENSIBLE;

    PROCEDURE (self:TitledBorder) setTitleFont*(p0 : java_awt.Font),NEW,EXTENSIBLE;

    PROCEDURE (self:TitledBorder) setTitleJustification*(p0 : INTEGER),NEW,EXTENSIBLE;

    PROCEDURE (self:TitledBorder) setTitlePosition*(p0 : INTEGER),NEW,EXTENSIBLE;

    END javax_swing_border.